]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: use _dump_blob_map helper
authorSage Weil <sage@redhat.com>
Tue, 7 Jun 2016 21:38:36 +0000 (17:38 -0400)
committerSage Weil <sage@redhat.com>
Wed, 15 Jun 2016 20:21:54 +0000 (16:21 -0400)
Unify bnode and onode dump output.

Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc
src/os/bluestore/BlueStore.h

index 998b3375436ea8aae57f54e9c277843e0d24b3ac..349fb1aa1d769defda451648c95efe93543892f1 100644 (file)
@@ -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;
+      }
+    }
   }
 }
 
index 385c942dbfd5daacff95c744c977835b3df4de91..01b80e369c1b0db2d176b9ac92583d557dbf26ab 100644 (file)
@@ -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);