bcachefs: Fix bio alloc in check_extent_checksum()
authorKent Overstreet <kent.overstreet@linux.dev>
Wed, 17 Apr 2024 21:27:43 +0000 (17:27 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Wed, 17 Apr 2024 21:29:58 +0000 (17:29 -0400)
if the buffer is virtually mapped it won't be a single bvec

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

index fadb1078903d291ce6ce3c7928d79c71c1eb18f8..a200442010025a0d8ee7b421d12edb32ff5c5a01 100644 (file)
@@ -470,7 +470,7 @@ found:
                goto err;
        }
 
-       bio = bio_alloc(ca->disk_sb.bdev, 1, REQ_OP_READ, GFP_KERNEL);
+       bio = bio_alloc(ca->disk_sb.bdev, buf_pages(data_buf, bytes), REQ_OP_READ, GFP_KERNEL);
        bio->bi_iter.bi_sector = p.ptr.offset;
        bch2_bio_map(bio, data_buf, bytes);
        ret = submit_bio_wait(bio);