]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: fix `dump dir` indicate dir is not cached 55989/head
authorJos Collin <jcollin@redhat.com>
Mon, 9 Oct 2023 23:34:01 +0000 (05:04 +0530)
committerJos Collin <jcollin@redhat.com>
Wed, 6 Mar 2024 09:40:16 +0000 (15:10 +0530)
Example output:
$ ceph daemon mds.a dump dir /test-dir
[
    {
        "value/bits": "0/0",
        "status": "dirfrag not in cache"
    }
]

Fixes: https://tracker.ceph.com/issues/63093
Signed-off-by: Jos Collin <jcollin@redhat.com>
(cherry picked from commit 5fb2f98cbc1f4797f5d1c15bc8cd6d2b5ce35ecd)

src/mds/MDSRank.cc

index 6f8439470a655d7706e3fd3907077c64dd5d0286..b58fe13f98d92bb0d06fd45988492382dccd99f5 100644 (file)
@@ -3388,8 +3388,14 @@ void MDSRank::command_dump_dir(Formatter *f, const cmdmap_t &cmdmap, std::ostrea
   in->dirfragtree.get_leaves_under(frag_t(), leaves);
   for (const auto& leaf : leaves) {
     CDir *dir = in->get_dirfrag(leaf);
-    if (dir)
+    if (dir) {
       mdcache->dump_dir(f, dir, dentry_dump);
+    } else {
+      f->open_object_section("frag");
+      f->dump_stream("frag") << leaf;
+      f->dump_string("status", "dirfrag not in cache");
+      f->close_section();
+    }
   }
   f->close_section();
 }