[Bugs] [Bug 1225709] [RFE] Move signing trigger mechanism to [f]setxattr()
bugzilla at redhat.com
bugzilla at redhat.com
Sun May 31 04:12:52 UTC 2015
https://bugzilla.redhat.com/show_bug.cgi?id=1225709
--- Comment #2 from Anand Avati <aavati at redhat.com> ---
COMMIT: http://review.gluster.org/10953 committed in release-3.7 by Venky
Shankar (vshankar at redhat.com)
------
commit 5e1f8629b15568ca43587fbf2d97dafc4491defe
Author: Venky Shankar <vshankar at redhat.com>
Date: Tue May 26 21:51:31 2015 +0530
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 at redhat.com>
Reviewed-on: http://review.gluster.org/10953
Tested-by: Gluster Build System <jenkins at build.gluster.com>
Tested-by: NetBSD Build System <jenkins at build.gluster.org>
--
You are receiving this mail because:
You are on the CC list for the bug.
You are the Docs Contact for the bug.
More information about the Bugs
mailing list