mirror of
https://github.com/ceph/ceph
synced 2025-03-11 02:39:05 +00:00
os/bluestore: use _dump_blob_map helper
Unify bnode and onode dump output. Signed-off-by: Sage Weil <sage@redhat.com>
This commit is contained in:
parent
85af407cb3
commit
b7168d983c
@ -5490,27 +5490,7 @@ void BlueStore::_dump_onode(OnodeRef o, int log_level)
|
||||
dout(log_level) << __func__ << " overlay_refs " << o->onode.overlay_refs
|
||||
<< dendl;
|
||||
}
|
||||
for (auto& b : o->blob_map.blob_map) {
|
||||
dout(log_level) << __func__ << " " << b.id << ": " << b.blob
|
||||
<< dendl;
|
||||
if (b.blob.has_csum_data()) {
|
||||
vector<uint64_t> v;
|
||||
unsigned n = b.blob.get_csum_count();
|
||||
for (unsigned i = 0; i < n; ++i)
|
||||
v.push_back(b.blob.get_csum_item(i));
|
||||
dout(log_level) << __func__ << " csum: " << std::hex << v << std::dec
|
||||
<< dendl;
|
||||
if (!b.bc.empty()) {
|
||||
for (auto& i : b.bc.buffer_map) {
|
||||
dout(log_level) << __func__ << " 0x" << std::hex << i.first
|
||||
<< "~" << i.second->length << std::dec
|
||||
<< " seq " << i.second->seq
|
||||
<< " " << Buffer::get_state_name(i.second->state)
|
||||
<< dendl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
_dump_blob_map(o->blob_map, log_level);
|
||||
if (o->bnode) {
|
||||
_dump_bnode(o->bnode, log_level);
|
||||
}
|
||||
@ -5522,16 +5502,28 @@ void BlueStore::_dump_bnode(BnodeRef b, int log_level)
|
||||
return;
|
||||
dout(log_level) << __func__ << " " << b
|
||||
<< " " << std::hex << b->hash << std::dec << dendl;
|
||||
for (auto &p : b->blob_map.blob_map) {
|
||||
dout(log_level) << __func__ << " " << p.id << ": " << p.blob << dendl;
|
||||
if (p.blob.has_csum_data()) {
|
||||
_dump_blob_map(b->blob_map, log_level);
|
||||
}
|
||||
|
||||
void BlueStore::_dump_blob_map(BlobMap &bm, int log_level)
|
||||
{
|
||||
for (auto& b : bm.blob_map) {
|
||||
dout(log_level) << __func__ << " " << b << dendl;
|
||||
if (b.blob.has_csum_data()) {
|
||||
vector<uint64_t> v;
|
||||
unsigned n = p.blob.get_csum_count();
|
||||
unsigned n = b.blob.get_csum_count();
|
||||
for (unsigned i = 0; i < n; ++i)
|
||||
v.push_back(p.blob.get_csum_item(i));
|
||||
v.push_back(b.blob.get_csum_item(i));
|
||||
dout(log_level) << __func__ << " csum: " << std::hex << v << std::dec
|
||||
<< dendl;
|
||||
}
|
||||
if (!b.bc.empty()) {
|
||||
for (auto& i : b.bc.buffer_map) {
|
||||
dout(log_level) << __func__ << " 0x" << std::hex << i.first
|
||||
<< "~" << i.second->length << std::dec
|
||||
<< " " << *i.second << dendl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -96,6 +96,11 @@ public:
|
||||
: logical_offset(from.logical_offset),
|
||||
blob_xoffset(from.blob_xoffset),
|
||||
length(from.length) {}
|
||||
|
||||
friend ostream& operator<<(ostream& out, const region_t& r) {
|
||||
return out << "0x" << std::hex << r.logical_offset << ":"
|
||||
<< r.blob_xoffset << "~" << r.length << std::dec;
|
||||
}
|
||||
};
|
||||
typedef list<region_t> regions2read_t;
|
||||
typedef map<const Blob*, regions2read_t> blobs2read_t;
|
||||
@ -1071,6 +1076,8 @@ private:
|
||||
|
||||
void _dump_onode(OnodeRef o, int log_level=30);
|
||||
void _dump_bnode(BnodeRef b, int log_level=30);
|
||||
void _dump_blob_map(BlobMap &bm, int log_level);
|
||||
|
||||
|
||||
TransContext *_txc_create(OpSequencer *osr);
|
||||
void _txc_update_store_statfs(TransContext *txc);
|
||||
|
Loading…
Reference in New Issue
Block a user