]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: bind attrs to bluestore_cache_meta mempool. 37264/head
authorIgor Fedotov <ifedotov@suse.com>
Sun, 20 Sep 2020 10:45:28 +0000 (13:45 +0300)
committerIgor Fedotov <ifedotov@suse.com>
Mon, 28 Sep 2020 10:38:03 +0000 (13:38 +0300)
This seems to be a better choice over bluestore_cache_data

Signed-off-by: Igor Fedotov <ifedotov@suse.com>
(cherry picked from commit f4e09fc103454fa8a41b5ffb822639368a89522d)

 Conflicts:
src/os/bluestore/bluestore_types.h
 Caused by the lack of explicit std:: reference in headers - master has
 got this as a part of crimson effort.

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

index 449bde654a702b164cc38041ad480fd14679cb3e..61429c03e6026c15e459e5c5943474f6a3ee858e 100644 (file)
@@ -3345,7 +3345,7 @@ BlueStore::Onode* BlueStore::Onode::decode(
   auto p = v.front().begin_deep();
   on->onode.decode(p);
   for (auto& i : on->onode.attrs) {
-    i.second.reassign_to_mempool(mempool::mempool_bluestore_cache_data);
+    i.second.reassign_to_mempool(mempool::mempool_bluestore_cache_meta);
   }
 
   // initialize extent_map
@@ -14330,10 +14330,10 @@ int BlueStore::_setattr(TransContext *txc,
   if (val.is_partial()) {
     auto& b = o->onode.attrs[name.c_str()] = bufferptr(val.c_str(),
                                                       val.length());
-    b.reassign_to_mempool(mempool::mempool_bluestore_cache_data);
+    b.reassign_to_mempool(mempool::mempool_bluestore_cache_meta);
   } else {
     auto& b = o->onode.attrs[name.c_str()] = val;
-    b.reassign_to_mempool(mempool::mempool_bluestore_cache_data);
+    b.reassign_to_mempool(mempool::mempool_bluestore_cache_meta);
   }
   txc->write_onode(o);
   dout(10) << __func__ << " " << c->cid << " " << o->oid
@@ -14356,10 +14356,10 @@ int BlueStore::_setattrs(TransContext *txc,
     if (p->second.is_partial()) {
       auto& b = o->onode.attrs[p->first.c_str()] =
        bufferptr(p->second.c_str(), p->second.length());
-      b.reassign_to_mempool(mempool::mempool_bluestore_cache_data);
+      b.reassign_to_mempool(mempool::mempool_bluestore_cache_meta);
     } else {
       auto& b = o->onode.attrs[p->first.c_str()] = p->second;
-      b.reassign_to_mempool(mempool::mempool_bluestore_cache_data);
+      b.reassign_to_mempool(mempool::mempool_bluestore_cache_meta);
     }
   }
   txc->write_onode(o);
index 4f686904501e4d7d581eb7df9822ea4e372d7686..f0cc26c08cfe9295820d520b95cd8f9407c88184 100644 (file)
@@ -900,8 +900,8 @@ ostream& operator<<(ostream& out, const bluestore_shared_blob_t& o);
 struct bluestore_onode_t {
   uint64_t nid = 0;                    ///< numeric id (locally unique)
   uint64_t size = 0;                   ///< object size
-  // FIXME: bufferptr does not have a mempool
-  map<mempool::bluestore_cache_meta::string, ceph::buffer::ptr> attrs;
+  // mempool to be assigned to buffer::ptr manually
+  std::map<mempool::bluestore_cache_meta::string, ceph::buffer::ptr> attrs;
 
   struct shard_info {
     uint32_t offset = 0;  ///< logical offset for start of shard