]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
gfs2: gfs2_chain_bio start sector fix
authorAndreas Gruenbacher <agruenba@redhat.com>
Mon, 12 Jan 2026 13:08:02 +0000 (14:08 +0100)
committerAndreas Gruenbacher <agruenba@redhat.com>
Mon, 26 Jan 2026 13:28:17 +0000 (14:28 +0100)
Pass the start sector into gfs2_chain_bio(): the new bio isn't
necessarily contiguous with the previous one.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
fs/gfs2/lops.c

index c3317432a25b3816d3f34733a5a5db5333f1a39a..879635ebddaebfe269c25987402b745a3fd6ca48 100644 (file)
@@ -479,13 +479,13 @@ static void gfs2_jhead_process_page(struct gfs2_jdesc *jd, unsigned long index,
 }
 
 static struct bio *gfs2_chain_bio(struct bio *prev, unsigned int nr_iovecs,
-                                 blk_opf_t opf)
+                                 sector_t sector, blk_opf_t opf)
 {
        struct bio *new;
 
        new = bio_alloc(prev->bi_bdev, nr_iovecs, opf, GFP_NOIO);
        bio_clone_blkg_association(new, prev);
-       new->bi_iter.bi_sector = bio_end_sector(prev);
+       new->bi_iter.bi_sector = sector;
        bio_chain(new, prev);
        submit_bio(prev);
        return new;
@@ -548,7 +548,7 @@ int gfs2_find_jhead(struct gfs2_jdesc *jd, struct gfs2_log_header_host *head)
                                        unsigned int blocks =
                                                (PAGE_SIZE - off) >> bsize_shift;
 
-                                       bio = gfs2_chain_bio(bio, blocks,
+                                       bio = gfs2_chain_bio(bio, blocks, sector,
                                                             REQ_OP_READ);
                                        goto add_block_to_new_bio;
                                }