]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mds: fix error hanlding in MDCache::handle_discover_reply()
authorYan, Zheng <zheng.z.yan@intel.com>
Sat, 8 Dec 2012 07:07:53 +0000 (15:07 +0800)
committerSage Weil <sage@inktank.com>
Mon, 24 Dec 2012 04:01:11 +0000 (20:01 -0800)
commit69f9f024e80b789ed0c8a783e6500f664b7780b3
tree76ebd18b4076da7686dc5396605a3984ea97f13e
parente6b8f0a65946b0281cf15770ada46a72a04c7836
mds: fix error hanlding in MDCache::handle_discover_reply()

The error hanlding code in MDCache::handle_discover_reply() has two
main issues. MDCache::handle_discover_reply() does not wake waiters
if dir_auth_hint in reply message is equal to itself's nodeid. This
can happen if discover race with subtree importing. Another issue is
that it checks the existence of cached directory fragment to decide
if it should take waiter from inode or from directory fragment. The
check is unreliable because subtree importing can add directory
fragments to the cache.

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