pos = p.first + p.second.length;
}
for (auto& b : o->onode.blob_map) {
- dout(log_level) << __func__ << " blob " << b.first << " " << b.second
+ dout(log_level) << __func__ << " " << b.first << ": " << b.second
<< dendl;
}
pos = 0;
dout(log_level) << __func__ << " overlay_refs " << o->onode.overlay_refs
<< dendl;
}
+ if (o->bnode) {
+ _dump_bnode(o->bnode, log_level);
+ }
+}
+
+void BlueStore::_dump_bnode(BnodeRef b, int log_level)
+{
+ if (!g_conf->subsys.should_gather(ceph_subsys_bluestore, log_level))
+ return;
+ dout(log_level) << __func__ << " " << std::hex << b->hash << std::dec << dendl;
+ dout(log_level) << __func__ << " " << b->ref_map << dendl;
+ for (auto &p : b->blob_map) {
+ dout(log_level) << __func__ << " " << p.first << ": " << p.second << dendl;
+ }
}
void BlueStore::_pad_zeros(
void _assign_nid(TransContext *txc, OnodeRef o);
void _dump_onode(OnodeRef o, int log_level=30);
+ void _dump_bnode(BnodeRef b, int log_level=30);
TransContext *_txc_create(OpSequencer *osr);
void _txc_release(TransContext *txc, CollectionRef& c, OnodeRef& onode,