]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bcachefs: Delete backpointers check in try_alloc_bucket()
authorKent Overstreet <kent.overstreet@linux.dev>
Fri, 15 Nov 2024 02:28:40 +0000 (21:28 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sat, 21 Dec 2024 06:36:18 +0000 (01:36 -0500)
try_alloc_bucket() has a "safety" check, which avoids allocating a
bucket if there's any backpointers present.

But backpointers are not the source of truth for live data in a bucket,
the bucket sector counts are; this check was fairly useless, and we're
also deferring backpointers checks from fsck to runtime in the near
future.

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

index 955ea6ae868fccce7339a7ec464c4faace8c752c..6d665b720f725ad490e73e061faf777d838f3ae1 100644 (file)
@@ -290,26 +290,6 @@ static struct open_bucket *try_alloc_bucket(struct btree_trans *trans, struct bc
        if (ret)
                return NULL;
 
-       if (unlikely(c->curr_recovery_pass <= BCH_RECOVERY_PASS_check_extents_to_backpointers)) {
-               struct bch_backpointer bp;
-               struct bpos bp_pos = POS_MIN;
-
-               ret = bch2_get_next_backpointer(trans, ca, POS(ca->dev_idx, b), -1,
-                                               &bp_pos, &bp,
-                                               BTREE_ITER_nopreserve);
-               if (ret)
-                       return ERR_PTR(ret);
-
-               if (!bkey_eq(bp_pos, POS_MAX)) {
-                       /*
-                        * Bucket may have data in it - we don't call
-                        * bch2_trans_inconsistent() because fsck hasn't
-                        * finished yet
-                        */
-                       return NULL;
-               }
-       }
-
        return __try_alloc_bucket(c, ca, b, gen, watermark, s, cl);
 }