]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
os/bluestore: add Onode::get_omap_prefix() helper
authorSage Weil <sage@redhat.com>
Tue, 23 Jul 2019 21:37:38 +0000 (16:37 -0500)
committerSage Weil <sage@redhat.com>
Tue, 30 Jul 2019 02:23:34 +0000 (21:23 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc
src/os/bluestore/BlueStore.h

index ce0748f72a096c2a2b8c81ec03c8e8eab2a17a56..9bfe13e0efe6908e73d25a37404964d6f9ef6cfb 100644 (file)
@@ -3303,6 +3303,12 @@ void BlueStore::Onode::dump(Formatter* f) const
   extent_map.dump(f);
 }
 
+
+const string& BlueStore::Onode::get_omap_prefix()
+{
+  return onode.is_pgmeta_omap() ? PREFIX_PGMETA_OMAP
+    : PREFIX_OMAP;
+}
 // =======================================================
 // WriteContext
  
@@ -9442,8 +9448,7 @@ int BlueStore::omap_get(
     goto out;
   o->flush();
   {
-    const string& prefix =
-      o->onode.is_pgmeta_omap() ? PREFIX_PGMETA_OMAP : PREFIX_OMAP;
+    const string& prefix = o->get_omap_prefix();
     KeyValueDB::Iterator it = db->get_iterator(prefix);
     string head, tail;
     get_omap_header(o->onode.nid, &head);
@@ -9496,8 +9501,7 @@ int BlueStore::omap_get_header(
   {
     string head;
     get_omap_header(o->onode.nid, &head);
-    if (db->get(o->onode.is_pgmeta_omap() ? PREFIX_PGMETA_OMAP : PREFIX_OMAP,
-               head, header) >= 0) {
+    if (db->get(o->get_omap_prefix(), head, header) >= 0) {
       dout(30) << __func__ << "  got header" << dendl;
     } else {
       dout(30) << __func__ << "  no header" << dendl;
@@ -9530,8 +9534,7 @@ int BlueStore::omap_get_keys(
     goto out;
   o->flush();
   {
-    const string& prefix =
-      o->onode.is_pgmeta_omap() ? PREFIX_PGMETA_OMAP : PREFIX_OMAP;
+    const string& prefix = o->get_omap_prefix();
     KeyValueDB::Iterator it = db->get_iterator(prefix);
     string head, tail;
     get_omap_key(o->onode.nid, string(), &head);
@@ -9578,8 +9581,7 @@ int BlueStore::omap_get_values(
   if (!o->onode.has_omap())
     goto out;
   {
-    const string& prefix =
-      o->onode.is_pgmeta_omap() ? PREFIX_PGMETA_OMAP : PREFIX_OMAP;
+    const string& prefix = o->get_omap_prefix();
     o->flush();
     _key_encode_u64(o->onode.nid, &final_key);
     final_key.push_back('.');
@@ -9622,8 +9624,7 @@ int BlueStore::omap_check_keys(
   if (!o->onode.has_omap())
     goto out;
   {
-    const string& prefix =
-      o->onode.is_pgmeta_omap() ? PREFIX_PGMETA_OMAP : PREFIX_OMAP;
+    const string& prefix = o->get_omap_prefix();
     o->flush();
     _key_encode_u64(o->onode.nid, &final_key);
     final_key.push_back('.');
@@ -9665,8 +9666,7 @@ ObjectMap::ObjectMapIterator BlueStore::get_omap_iterator(
   }
   o->flush();
   dout(10) << __func__ << " has_omap = " << (int)o->onode.has_omap() <<dendl;
-  KeyValueDB::Iterator it = db->get_iterator(
-    o->onode.is_pgmeta_omap() ? PREFIX_PGMETA_OMAP : PREFIX_OMAP);
+  KeyValueDB::Iterator it = db->get_iterator(o->get_omap_prefix());
   return ObjectMap::ObjectMapIterator(new OmapIteratorImpl(c, o, it));
 }
 
@@ -13105,8 +13105,7 @@ int BlueStore::_rmattrs(TransContext *txc,
 
 void BlueStore::_do_omap_clear(TransContext *txc, OnodeRef& o)
 {
-  const string& omap_prefix = o->onode.is_pgmeta_omap() ? PREFIX_PGMETA_OMAP
-    : PREFIX_OMAP;
+  const string& omap_prefix = o->get_omap_prefix();
   const uint64_t id = o->onode.nid;
   string prefix, tail;
   get_omap_header(id, &prefix);
@@ -13150,8 +13149,7 @@ int BlueStore::_omap_setkeys(TransContext *txc,
     }
     txc->write_onode(o);
 
-    const string& prefix =
-      o->onode.is_pgmeta_omap() ? PREFIX_PGMETA_OMAP : PREFIX_OMAP;
+    const string& prefix = o->get_omap_prefix();
     string key_tail;
     bufferlist tail;
     get_omap_tail(o->onode.nid, &key_tail);
@@ -13159,8 +13157,7 @@ int BlueStore::_omap_setkeys(TransContext *txc,
   } else {
     txc->note_modified_object(o);
   }
-  const string& prefix =
-    o->onode.is_pgmeta_omap() ? PREFIX_PGMETA_OMAP : PREFIX_OMAP;
+  const string& prefix = o->get_omap_prefix();
   string final_key;
   _key_encode_u64(o->onode.nid, &final_key);
   final_key.push_back('.');
@@ -13196,8 +13193,7 @@ int BlueStore::_omap_setheader(TransContext *txc,
     }
     txc->write_onode(o);
 
-    const string& prefix =
-      o->onode.is_pgmeta_omap() ? PREFIX_PGMETA_OMAP : PREFIX_OMAP;
+    const string& prefix = o->get_omap_prefix();
     string key_tail;
     bufferlist tail;
     get_omap_tail(o->onode.nid, &key_tail);
@@ -13205,8 +13201,7 @@ int BlueStore::_omap_setheader(TransContext *txc,
   } else {
     txc->note_modified_object(o);
   }
-  const string& prefix =
-    o->onode.is_pgmeta_omap() ? PREFIX_PGMETA_OMAP : PREFIX_OMAP;
+  const string& prefix = o->get_omap_prefix();
   get_omap_header(o->onode.nid, &key);
   txc->t->set(prefix, key, bl);
   r = 0;
@@ -13229,8 +13224,7 @@ int BlueStore::_omap_rmkeys(TransContext *txc,
     goto out;
   }
   {
-    const string& prefix =
-      o->onode.is_pgmeta_omap() ? PREFIX_PGMETA_OMAP : PREFIX_OMAP;
+    const string& prefix = o->get_omap_prefix();
     _key_encode_u64(o->onode.nid, &final_key);
     final_key.push_back('.');
     decode(num, p);
@@ -13263,8 +13257,7 @@ int BlueStore::_omap_rmkey_range(TransContext *txc,
     goto out;
   }
   {
-    const string& prefix =
-      o->onode.is_pgmeta_omap() ? PREFIX_PGMETA_OMAP : PREFIX_OMAP;
+    const string& prefix = o->get_omap_prefix();
     o->flush();
     get_omap_key(o->onode.nid, first, &key_first);
     get_omap_key(o->onode.nid, last, &key_last);
@@ -13353,8 +13346,7 @@ int BlueStore::_clone(TransContext *txc,
     if (newo->oid.is_pgmeta()) {
       newo->onode.flags |= bluestore_onode_t::FLAG_PGMETA_OMAP;
     }
-    const string& prefix =
-      newo->onode.is_pgmeta_omap() ? PREFIX_PGMETA_OMAP : PREFIX_OMAP;
+    const string& prefix = newo->get_omap_prefix();
     KeyValueDB::Iterator it = db->get_iterator(prefix);
     string head, tail;
     get_omap_header(oldo->onode.nid, &head);
index 64721bf73f864ee2f72e98b5091e192ccb00cb8f..a9bc8defad55a89d2d6e8e8802ea7514c5e07269 100644 (file)
@@ -1085,6 +1085,8 @@ public:
       if (--nref == 0)
        delete this;
     }
+
+    const string& get_omap_prefix();
   };
   typedef boost::intrusive_ptr<Onode> OnodeRef;