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 <khiremat@redhat.com>
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]+')
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: