]> git-server-git.apps.pok.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>
Sun, 20 Sep 2020 09:23:16 +0000 (12:23 +0300)
Fixes: https://tracker.ceph.com/issues/47551
Signed-off-by: Igor Fedotov <ifedotov@suse.com>
src/os/bluestore/bluestore_types.cc
src/os/bluestore/bluestore_types.h

index 2eaf003f2ca817b06ce35e0e55321a643feffcb6..b45e166541127c85c894e3f4c4704892610f7230 100644 (file)
@@ -399,6 +399,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;
   }
@@ -1042,6 +1046,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 ed7f8219d57f064c1a0113a2394953ba51df5cb1..3f2ef4370ff2345bd032e7ef28eb82fae24057b9 100644 (file)
@@ -267,6 +267,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;
@@ -906,6 +909,7 @@ std::ostream& operator<<(std::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