summaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorVenky Shankar <vshankar@redhat.com>2015-05-26 21:51:31 +0530
committerVenky Shankar <vshankar@redhat.com>2015-05-30 21:12:48 -0700
commit5e1f8629b15568ca43587fbf2d97dafc4491defe (patch)
tree37f572b457e8bcfb4e50b22d954b6566da3282a0 /contrib
parentf52e77d57fd64881a653d61ecb325b75f7f009c6 (diff)
features/bitrot: stub improvements and fixes
This patch refactors the signing trigger mechanism used by bitrot daemon as a "catch up" meachanism to sign files which _missed_ signing on the last run either due to bitrot being disabled and enabled again or if bitrot is enabled for a volume with existing data. Existing implementation relies on overloading writev() to trigger signing which just by the looks sounded dangerous and I hated it to the core. This change moves all that business to the setxattr interface thereby keeping the writev path strictly for client IO. Why not use IPC fop to trigger signing? There's a need to access the object's inode to perform various maintainance operations. inode is not _directly_ accessible in the IPC fop (although, it can be found via inode_grep() for the object's GFID - the inode just needs to be pinned in memory, which is the case if there's an active fd on the inode). This patch relies on good old technique of overloading fsetxattr() to do the job instead of using IPC fop. There are some pretty nice cleanups along the lines of memory deallocations, unncessary allocations and redundant ref()ing of structures (such as fd's) provided by this patch. All in all - much improved code navigation. Change-Id: Id93fe90b1618802d1a95a5072517dac342b96cb8 BUG: 1225709 Signed-off-by: Venky Shankar <vshankar@redhat.com> Reviewed-on: http://review.gluster.org/10953 Tested-by: Gluster Build System <jenkins@build.gluster.com> Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Diffstat (limited to 'contrib')
0 files changed, 0 insertions, 0 deletions