From: Yan, Zheng Date: Wed, 16 Jan 2013 12:22:03 +0000 (+0800) Subject: mds: fix for MDCache::disambiguate_imports X-Git-Tag: v0.57~88^2~11 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c93cf2d23b2b6aef73d0ca59294eeed1eebfa646;p=ceph.git mds: fix for MDCache::disambiguate_imports In the resolve stage, if no MDS claims other MDS's disambiguous subtree import, the subtree's dir_auth is undefined. Signed-off-by: Yan, Zheng --- diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 9a8d7e7deebe..e75e87d5554a 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -3078,7 +3078,8 @@ void MDCache::disambiguate_imports() CDir *dir = get_force_dirfrag(q->first); if (!dir) continue; - if (dir->is_ambiguous_auth()) { // works for me_ambig or if i am a surviving bystander + if (dir->is_ambiguous_auth() || // works for me_ambig or if i am a surviving bystander + dir->authority() == CDIR_AUTH_UNDEF) { // resolving dout(10) << " mds." << who << " did import " << *dir << dendl; adjust_bounded_subtree_auth(dir, q->second, who); try_subtree_merge(dir);