]> 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>
Thu, 26 Nov 2020 19:14:43 +0000 (22:14 +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 4d7e14afd863279e0d1e2fe0a344a8f0fea40818..134eed5b89ca31337770c191f218e76370e0cc8b 100644 (file)
@@ -358,6 +358,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;
   }
@@ -1000,6 +1004,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 dc6b25f0b8eeea4b6c7b825452c1a869180f782a..d7c437b816a6b25059b3980fe5b4aa555e25f06f 100644 (file)
@@ -264,6 +264,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;
@@ -864,6 +867,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