extent_map.dump(f);
}
+
+const string& BlueStore::Onode::get_omap_prefix()
+{
+ return onode.is_pgmeta_omap() ? PREFIX_PGMETA_OMAP
+ : PREFIX_OMAP;
+}
// =======================================================
// WriteContext
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);
{
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;
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);
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('.');
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('.');
}
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));
}
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);
}
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);
} 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('.');
}
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);
} 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;
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);
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);
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);