]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: drop unreferenced spanning blobs 11212/head
authorSage Weil <sage@redhat.com>
Fri, 23 Sep 2016 14:16:10 +0000 (10:16 -0400)
committerSage Weil <sage@redhat.com>
Fri, 23 Sep 2016 14:16:10 +0000 (10:16 -0400)
Otherwise we can "leak" these and keep them around indefinitely.

Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc

index 069f8a0ce100f3bc3b651915d2d1cf2dc08c957c..f95acfef13cfe6bd4085063d68b24efa0c424c03 100644 (file)
@@ -7420,6 +7420,12 @@ void BlueStore::_wctx_finish(
       }
     }
     delete &lo;
+    if (b->id >= 0 && b->ref_map.empty()) {
+      dout(20) << __func__ << "  spanning_blob_map removing empty " << *b
+              << dendl;
+      auto it = o->extent_map.spanning_blob_map.iterator_to(*b);
+      o->extent_map.spanning_blob_map.erase(it);
+    }
   }
 }