From: Patrick Donnelly Date: Sat, 7 Mar 2020 03:15:03 +0000 (-0800) Subject: mds: remove frozen export pin from queue X-Git-Tag: v15.2.5~172^2~17 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=10691ca0443b82382dee0ee0ae2ee8e8f80690bc;p=ceph.git mds: remove frozen export pin from queue The export already belongs on the node id so there's no need to keep it in the queue. Signed-off-by: Patrick Donnelly (cherry picked from commit 70ba356bbdd5c10979f9ff6a630de23d8304fb35) --- diff --git a/src/mds/MDBalancer.cc b/src/mds/MDBalancer.cc index af6e15fb15e..89f4040fa2c 100644 --- a/src/mds/MDBalancer.cc +++ b/src/mds/MDBalancer.cc @@ -129,17 +129,18 @@ void MDBalancer::handle_export_pins(void) mds->mdcache->try_subtree_merge(dir); } } else if (export_pin == mds->get_nodeid()) { - if (dir->state_test(CDir::STATE_CREATING) || - dir->is_frozen() || dir->is_freezing()) { + if (dir->state_test(CDir::STATE_AUXSUBTREE)) { + ceph_assert(dir->is_subtree_root()); + } else if (dir->state_test(CDir::STATE_CREATING) || + dir->is_frozen() || dir->is_freezing()) { // try again later remove = false; continue; - } - if (!dir->is_subtree_root()) { + } else if (!dir->is_subtree_root()) { dir->state_set(CDir::STATE_AUXSUBTREE); mds->mdcache->adjust_subtree_auth(dir, mds->get_nodeid()); dout(10) << " create aux subtree on " << *dir << dendl; - } else if (!dir->state_test(CDir::STATE_AUXSUBTREE)) { + } else { dout(10) << " set auxsubtree bit on " << *dir << dendl; dir->state_set(CDir::STATE_AUXSUBTREE); }