From d16480c36449ac118cdacf58d8cd0d9fe74050ac Mon Sep 17 00:00:00 2001 From: Kotresh HR Date: Wed, 28 Feb 2024 17:34:37 +0530 Subject: [PATCH] tools/cephfs: Fix first-damage to include missing dirs Don't skip root and lost+found directories while checking for damaged metadata. Fixes: https://tracker.ceph.com/issues/64615 Signed-off-by: Kotresh HR --- src/tools/cephfs/first-damage.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/tools/cephfs/first-damage.py b/src/tools/cephfs/first-damage.py index 0479dc8cb2a..23dc5032976 100644 --- a/src/tools/cephfs/first-damage.py +++ b/src/tools/cephfs/first-damage.py @@ -60,6 +60,8 @@ CONF = os.environ.get('CEPH_CONF') REPAIR_NOSNAP = None CEPH_NOSNAP = 0xfffffffe # int32 -2 +ROOT_INODE = "1.00000000" +LOST_FOUND_INODE = "4.00000000" DIR_PATTERN = re.compile(r'[0-9a-fA-F]{8,}\.[0-9a-fA-F]+') @@ -67,7 +69,7 @@ CACHE = set() def traverse(MEMO, ioctx): for o in ioctx.list_objects(): - if not DIR_PATTERN.fullmatch(o.key): + if not DIR_PATTERN.fullmatch(o.key) and o.key not in [ROOT_INODE, LOST_FOUND_INODE]: log.debug("skipping %s", o.key) continue elif o.key in CACHE: -- 2.39.5