]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
bcachefs: Don't generate alloc updates to invalid buckets
authorKent Overstreet <kent.overstreet@linux.dev>
Mon, 28 Apr 2025 16:11:31 +0000 (12:11 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Mon, 28 Apr 2025 20:46:13 +0000 (16:46 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/buckets.c

index e1efae43982a87da54a221b9bff782aa187c2035..31fbc2716d8bf558c660dfdec008f022bcfa72bc 100644 (file)
@@ -604,6 +604,13 @@ static int bch2_trigger_pointer(struct btree_trans *trans,
        }
 
        struct bpos bucket = PTR_BUCKET_POS(ca, &p.ptr);
+       if (!bucket_valid(ca, bucket.offset)) {
+               if (insert) {
+                       bch2_dev_bucket_missing(ca, bucket.offset);
+                       ret = -BCH_ERR_trigger_pointer;
+               }
+               goto err;
+       }
 
        if (flags & BTREE_TRIGGER_transactional) {
                struct bkey_i_alloc_v4 *a = bch2_trans_start_alloc_update(trans, bucket, 0);