]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: add missing structs to bluestore_cache_other mempool
authorIgor Fedotov <ifedotov@suse.com>
Sun, 20 Sep 2020 09:22:05 +0000 (12:22 +0300)
committerIgor Fedotov <ifedotov@suse.com>
Mon, 28 Sep 2020 10:37:16 +0000 (13:37 +0300)
Fixes: https://tracker.ceph.com/issues/47551
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit 4592c5df554190065fa9a994f7b6dc3fed7ea214)

src/os/bluestore/bluestore_types.cc
src/os/bluestore/bluestore_types.h

index a0b799422f75a5aeb1efe995fe368743e85c1fc3..d04773728c59be0cb9f5c9cef489f6d051de6d18 100644 (file)
@@ -389,6 +389,10 @@ void bluestore_blob_use_tracker_t::allocate()
 {
   ceph_assert(num_au != 0);
   bytes_per_au = new uint32_t[num_au];
+  mempool::get_pool(
+    mempool::pool_index_t(mempool::mempool_bluestore_cache_other)).
+      adjust_count(1, sizeof(uint32_t) * num_au);
+
   for (uint32_t i = 0; i < num_au; ++i) {
     bytes_per_au[i] = 0;
   }
@@ -1032,6 +1036,8 @@ void bluestore_blob_t::split(uint32_t blob_offset, bluestore_blob_t& rb)
 }
 
 // bluestore_shared_blob_t
+MEMPOOL_DEFINE_OBJECT_FACTORY(bluestore_shared_blob_t, bluestore_shared_blob_t,
+                 bluestore_cache_other);
 
 void bluestore_shared_blob_t::dump(Formatter *f) const
 {
index 174cf3dddbf19915ab805fcb850457a8f44023a9..4f686904501e4d7d581eb7df9822ea4e372d7686 100644 (file)
@@ -266,6 +266,9 @@ struct bluestore_blob_use_tracker_t {
   void clear() {
     if (num_au != 0) {
       delete[] bytes_per_au;
+      mempool::get_pool(
+        mempool::pool_index_t(mempool::mempool_bluestore_cache_other)).
+          adjust_count(-1, -sizeof(uint32_t) * num_au);
     }
     bytes_per_au = 0;
     au_size = 0;
@@ -866,6 +869,7 @@ ostream& operator<<(ostream& out, const bluestore_blob_t& o);
 
 /// shared blob state
 struct bluestore_shared_blob_t {
+  MEMPOOL_CLASS_HELPERS();
   uint64_t sbid;                       ///> shared blob id
   bluestore_extent_ref_map_t ref_map;  ///< shared blob extents