From: Yan, Zheng Date: Wed, 19 Apr 2017 07:47:56 +0000 (+0800) Subject: mds: check dirfrag bloom filter when handling discover X-Git-Tag: v12.1.0~10^2~28^2~9 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=018c4804bdb5bffece05e9e1e73028a6c96c9c16;p=ceph.git mds: check dirfrag bloom filter when handling discover Signed-off-by: "Yan, Zheng" --- diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 50476199ad6c..af6152bf45dd 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -9889,6 +9889,7 @@ void MDCache::handle_discover(MDiscover *dis) CDentry *dn = 0; if (curdir->get_version() == 0) { // fetch newly opened dir + assert(!curdir->has_bloom()); } else if (dis->get_want().depth() > 0) { // lookup dentry dn = curdir->lookup(dis->get_dentry(i), snapid); @@ -9897,7 +9898,8 @@ void MDCache::handle_discover(MDiscover *dis) // incomplete dir? if (!dn) { - if (!curdir->is_complete()) { + if (!curdir->is_complete() && + (!curdir->has_bloom() || curdir->is_in_bloom(dis->get_dentry(i)))) { // readdir dout(7) << "incomplete dir contents for " << *curdir << ", fetching" << dendl; if (reply->is_empty()) {