]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bcachefs: Fix iterator leak in may_delete_deleted_inode()
authorKent Overstreet <kent.overstreet@linux.dev>
Sun, 12 Nov 2023 03:15:59 +0000 (22:15 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Wed, 15 Nov 2023 04:44:43 +0000 (23:44 -0500)
may_delete_deleted_inode() was returning without exiting a btree
iterator, eventually causing propagate_key_to_snaphot_leaves() to go
into an infinite loop hitting btree_trans_too_many_iters().

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/inode.c

index def77f2d88024b788b6ce7c03bda07827f73a621..dab12c14d1ade23ce49eee081c0f2c7d3e410922 100644 (file)
@@ -1134,7 +1134,7 @@ static int may_delete_deleted_inode(struct btree_trans *trans,
                 * unlinked inodes in the snapshot leaves:
                 */
                *need_another_pass = true;
-               return 0;
+               goto out;
        }
 
        ret = 1;