From a524df2fc854ef68bd0657ccbbdd3e4f6aa600b3 Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Sun, 14 Feb 2016 16:42:56 +0800 Subject: [PATCH] mds: properly purge backtrace object backtrace objects are always in default namespace Signed-off-by: Yan, Zheng --- src/mds/StrayManager.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mds/StrayManager.cc b/src/mds/StrayManager.cc index 868d49a1d1f3d..5a8eed8ca08c4 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, -- 2.39.5