From: Yan, Zheng Date: Wed, 17 May 2017 09:01:05 +0000 (+0800) Subject: mds: fix CDir::merge() for mds_debug_auth_pins X-Git-Tag: v12.1.1~65^2~15^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2c537ee796ee5cb2aac88f3a2e75c3b22cd6c5c1;p=ceph.git mds: fix CDir::merge() for mds_debug_auth_pins Fixes: http://tracker.ceph.com/issues/19946 Signed-off-by: "Yan, Zheng" --- diff --git a/src/mds/CDir.cc b/src/mds/CDir.cc index 03ba644631ec..04d3747344ad 100644 --- a/src/mds/CDir.cc +++ b/src/mds/CDir.cc @@ -863,6 +863,7 @@ void CDir::prepare_new_fragment(bool replay) _freeze_dir(); mark_complete(); } + inode->add_dirfrag(this); } void CDir::finish_old_fragment(list& waiters, bool replay) @@ -966,7 +967,6 @@ void CDir::split(int bits, list& subs, list& wai dout(10) << " subfrag " << *p << " " << *f << dendl; subfrags[n++] = f; subs.push_back(f); - inode->add_dirfrag(f); f->set_dir_auth(get_dir_auth()); f->prepare_new_fragment(replay); diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 8f0ca76accb2..ed6d9938e344 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -10695,7 +10695,6 @@ void MDCache::adjust_dir_fragments(CInode *diri, // merge CDir *f = new CDir(diri, basefrag, this, srcfrags.front()->is_auth()); f->merge(srcfrags, waiters, replay); - diri->add_dirfrag(f); if (was_subtree) { assert(f->is_subtree_root());