]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mds: include all of directory inode's replicas in rmdir witnesses
authorYan, Zheng <zheng.z.yan@intel.com>
Thu, 8 May 2014 05:55:25 +0000 (13:55 +0800)
committerYan, Zheng <zheng.z.yan@intel.com>
Sun, 18 May 2014 05:12:06 +0000 (13:12 +0800)
commit3783653217b62ed432dfdfaef26ea23c5b117fd5
tree2013bf396394bb08487a5f06ba1274458eadf3b4
parent08b79ea8885d054df49fbb99e28d3de172e20a77
mds: include all of directory inode's replicas in rmdir witnesses

If a MDS crashed after journaling a rmdir operation, but before sending
MDentryUnlink messages. Survivor MDS may have incorrect linkage for the
removed directory. Later when the MDS recovers, the incorrect linkage
can cause survivor MDS crash.

The fix is include all of directory inode's replicas in rmdir witnesses
list. When receiving a rmdir slave request, MDS who has no auth subtree
in the directory only need to update its cache and send reply (doesn't
need to journal the slave request).

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
src/mds/Mutation.h
src/mds/Server.cc