]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
client: dump frag's repmap if dir_replicated is true 36631/head
authorYanhu Cao <gmayyyha@gmail.com>
Fri, 14 Aug 2020 08:38:18 +0000 (16:38 +0800)
committerYanhu Cao <gmayyyha@gmail.com>
Fri, 14 Aug 2020 08:38:18 +0000 (16:38 +0800)
Signed-off-by: Yanhu Cao <gmayyyha@gmail.com>
src/client/Inode.cc

index ab27d1eb4f115fb0b0507e325b5e2e6a9bd80639..bf2a09991e261e8b3c559bd9fdb8d509e2ed6a02 100644 (file)
@@ -451,6 +451,24 @@ void Inode::dump(Formatter *f) const
   if (is_dir()) {
     f->dump_int("dir_hashed", (int)dir_hashed);
     f->dump_int("dir_replicated", (int)dir_replicated);
+    if (dir_replicated) {
+      f->open_array_section("dirfrags");
+      for (const auto &frag : frag_repmap) {
+        f->open_object_section("frags");
+        CachedStackStringStream css;
+        *css << std::hex << frag.first.value() << "/" << std::dec << frag.first.bits();
+        f->dump_string("frag", css->strv());
+
+        f->open_array_section("repmap");
+        for (const auto &mds : frag.second) {
+          f->dump_int("mds", mds);
+        }
+        f->close_section();
+
+        f->close_section();
+      }
+      f->close_section();
+    }
   }
 
   f->open_array_section("caps");