mds: add authority check for delay dirfrag split

the dirfrag can be migareted to other mds while waiting in the
timer.

Fixes: http://tracker.ceph.com/issues/18487
Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
This commit is contained in:
Yan, Zheng 2017-01-19 15:24:54 +08:00
parent 5f651d8e28
commit 5de08f099b

View File

@ -400,6 +400,10 @@ void MDBalancer::queue_split(const CDir *dir, bool fast)
dout(10) << "drop split on " << frag << " because not in cache" << dendl;
return;
}
if (!split_dir->is_auth()) {
dout(10) << "drop split on " << frag << " because non-auth" << dendl;
return;
}
// Pass on to MDCache: note that the split might still not
// happen if the checks in MDCache::can_fragment fail.