From: Yan, Zheng Date: Tue, 10 Nov 2015 11:58:00 +0000 (+0800) Subject: mds: skip scrubbing remote linkage X-Git-Tag: v10.0.1~51^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f4f1f57ebb80aaa5f4051095d51d001fd85e327c;p=ceph.git mds: skip scrubbing remote linkage Signed-off-by: Yan, Zheng --- diff --git a/src/mds/CDir.cc b/src/mds/CDir.cc index 0cfb0faa670d..379d0546adaf 100644 --- a/src/mds/CDir.cc +++ b/src/mds/CDir.cc @@ -2909,11 +2909,15 @@ void CDir::scrub_initialize() if (i->first.snapid != CEPH_NOSNAP) continue; - CInode *in = i->second->get_projected_linkage()->get_inode(); - if (in && in->is_dir()) - scrub_infop->directories_to_scrub.insert(i->first); - else if (in) - scrub_infop->others_to_scrub.insert(i->first); + CDentry::linkage_t *dnl = i->second->get_projected_linkage(); + if (dnl->is_primary()) { + if (dnl->get_inode()->is_dir()) + scrub_infop->directories_to_scrub.insert(i->first); + else + scrub_infop->others_to_scrub.insert(i->first); + } else if (dnl->is_remote()) { + // TODO: check remote linkage + } } scrub_infop->directory_scrubbing = true;