]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: properly purge backtrace object
authorYan, Zheng <zyan@redhat.com>
Sun, 14 Feb 2016 08:42:56 +0000 (16:42 +0800)
committerSage Weil <sage@redhat.com>
Tue, 1 Mar 2016 16:18:18 +0000 (11:18 -0500)
backtrace objects are always in default namespace

Signed-off-by: Yan, Zheng <zyan@redhat.com>
src/mds/StrayManager.cc

index 868d49a1d1f3d5fb59d9a554a784ea078d199040..5a8eed8ca08c4965f84fc5042e4431001f091deb 100644 (file)
@@ -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,