summaryrefslogtreecommitdiff
path: root/libbcachefs/inode.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-08-17 17:08:33 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-08-17 17:11:27 -0400
commit505c326cbe091b105dbdfbe66dae4ad6ee424906 (patch)
treea7bf3a8ebac5ef648d48489eb87964e79bb2e261 /libbcachefs/inode.c
parent4d04fe42623a2f2b91a75cfa3d3503ab88e48acc (diff)
Update bcachefs sources to a8115093df bcachefs: Fix divide by zero in rebalance_work()
Diffstat (limited to 'libbcachefs/inode.c')
-rw-r--r--libbcachefs/inode.c6
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))