]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mds: New backtrace handling
authorSam Lang <sam.lang@inktank.com>
Tue, 5 Mar 2013 14:48:29 +0000 (08:48 -0600)
committerSam Lang <sam.lang@inktank.com>
Sat, 16 Mar 2013 16:45:36 +0000 (11:45 -0500)
commit4d0448f87626a8c67a2a34a79d679b82f80eca57
treece25e354cc8a9fe62edfbb0bcd53100485c6e5c4
parent62d12d8ae95b15c22fb188e0a27c22cf3d50d100
mds: New backtrace handling

Add unified backtrace handling for storing a backtrace on file objects
(the first data object) and dirs.  The backtrace store operation is
queued on the LogSegment (for performing the store on log segment
expire).  We encode the backtrace on queue to avoid keeping a reference
around to the CInode, which may get dropped from the cache by the time
the log segment is expired (and the backtrace is written out).
Fetching the backtrace is implemented on the CInode.

Also allow incrementing/decrementing the DIRTYPARENT pin ref as needed,
instead of using a state semaphore to keep track of whether itsset or
not.  This allows us to remove the STATE_DIRTYPARENT field on CInode.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
src/mds/CDir.cc
src/mds/CInode.cc
src/mds/CInode.h
src/mds/LogSegment.h
src/mds/MDLog.cc
src/mds/Server.cc
src/mds/inode_backtrace.cc
src/mds/inode_backtrace.h
src/mds/journal.cc
src/mds/mdstypes.cc
src/mds/mdstypes.h