diff options
Diffstat (limited to 'libbcachefs/inode.c')
-rw-r--r-- | libbcachefs/inode.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libbcachefs/inode.c b/libbcachefs/inode.c index e0d41655..8114b6e4 100644 --- a/libbcachefs/inode.c +++ b/libbcachefs/inode.c @@ -11,6 +11,7 @@ #include "extent_update.h" #include "inode.h" #include "str_hash.h" +#include "snapshot.h" #include "subvolume.h" #include "varint.h" @@ -1048,6 +1049,11 @@ static int may_delete_deleted_inode(struct btree_trans *trans, struct bpos pos) if (ret) goto err; + if (fsck_err_on(S_ISDIR(inode.bi_mode), c, + "directory %llu:%u in deleted_inodes btree", + pos.offset, pos.snapshot)) + goto delete; + if (fsck_err_on(!(inode.bi_flags & BCH_INODE_UNLINKED), c, "non-deleted inode %llu:%u in deleted_inodes btree", pos.offset, pos.snapshot)) |