From: Kotresh HR Date: Wed, 28 Feb 2024 12:04:37 +0000 (+0530) Subject: tools/cephfs: Fix first-damage to include missing dirs X-Git-Tag: v20.0.0~2406^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d16480c36449ac118cdacf58d8cd0d9fe74050ac;p=ceph.git 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 --- diff --git a/src/tools/cephfs/first-damage.py b/src/tools/cephfs/first-damage.py index 0479dc8cb2a6c..23dc503297692 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: