From e4fd2932df35f18cfa933054abde00dc994b9b5d Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 23 Jul 2019 16:37:38 -0500 Subject: [PATCH] os/bluestore: add Onode::get_omap_prefix() helper Signed-off-by: Sage Weil --- src/os/bluestore/BlueStore.cc | 48 +++++++++++++++-------------------- src/os/bluestore/BlueStore.h | 2 ++ 2 files changed, 22 insertions(+), 28 deletions(-) diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index ce0748f72a0..9bfe13e0efe 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -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() <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); diff --git a/src/os/bluestore/BlueStore.h b/src/os/bluestore/BlueStore.h index 64721bf73f8..a9bc8defad5 100644 --- a/src/os/bluestore/BlueStore.h +++ b/src/os/bluestore/BlueStore.h @@ -1085,6 +1085,8 @@ public: if (--nref == 0) delete this; } + + const string& get_omap_prefix(); }; typedef boost::intrusive_ptr OnodeRef; -- 2.39.5