diff options
Diffstat (limited to 'libbcachefs/fsck.c')
-rw-r--r-- | libbcachefs/fsck.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libbcachefs/fsck.c b/libbcachefs/fsck.c index c554a987..048b5c10 100644 --- a/libbcachefs/fsck.c +++ b/libbcachefs/fsck.c @@ -747,8 +747,13 @@ up: } for_each_btree_key(&iter, c, BTREE_ID_INODES, POS_MIN, 0, k) { - if (k.k->type != BCH_INODE_FS || - !S_ISDIR(le16_to_cpu(bkey_s_c_to_inode(k).v->bi_mode))) + if (k.k->type != BCH_INODE_FS) + continue; + + if (!S_ISDIR(le16_to_cpu(bkey_s_c_to_inode(k).v->bi_mode))) + continue; + + if (!bch2_empty_dir(c, k.k->p.inode)) continue; if (fsck_err_on(!inode_bitmap_test(&dirs_done, k.k->p.inode), c, |