From: Yan, Zheng Date: Sun, 14 Feb 2016 08:42:56 +0000 (+0800) Subject: mds: properly purge backtrace object X-Git-Tag: v10.1.0~241^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a524df2fc854ef68bd0657ccbbdd3e4f6aa600b3;p=ceph.git mds: properly purge backtrace object backtrace objects are always in default namespace Signed-off-by: Yan, Zheng --- diff --git a/src/mds/StrayManager.cc b/src/mds/StrayManager.cc index 868d49a1d1f3..5a8eed8ca08c 100644 --- a/src/mds/StrayManager.cc +++ b/src/mds/StrayManager.cc @@ -148,8 +148,8 @@ void StrayManager::purge(CDentry *dn, uint32_t op_allowance) inode_t *pi = in->get_projected_inode(); object_t oid = CInode::get_object_name(pi->ino, frag_t(), ""); // remove the backtrace object if it was not purged - if (!gather.has_subs()) { - object_locator_t oloc(pi->layout.pool_id, pi->layout.pool_ns); + if (!gather.has_subs() || !pi->layout.pool_ns.empty()) { + object_locator_t oloc(pi->layout.pool_id); dout(10) << __func__ << " remove backtrace object " << oid << " pool " << oloc.pool << " snapc " << snapc << dendl; mds->objecter->remove(oid, oloc, *snapc,