History

Merge tag 'gfs2-for-6.19-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2

Pull gfs2 revert from Andreas Gruenbacher: "Revert bad commit "gfs2: Fix use of bio_chain" I was originally assuming that there must be a bug in gfs2 because gfs2 chains bios in the opposite direction of what bio_chain_and_submit() expects. It turns out that the bio chains are set up in "reverse direction" intentionally so that the first bio's bi_end_io callback is invoked rather than the last bio's callback. We want the first bio's callback invoked for the following reason: The initial bio starts page aligned and covers one or more pages. When it terminates at a non-page-aligned offset, subsequent bios are added to handle the remaining portion of the final page. Upon completion of the bio chain, all affected pages need to be be marked as read, and only the first bio references all of these pages" * tag 'gfs2-for-6.19-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2: Revert "gfs2: Fix use of bio_chain"

Linus Torvalds committed 10 months ago

Commit b5434592 parents 0bb933a 469d7151 file · +1 −1Browse files

Unified · Split

fs/gfs2/lops.c+1−1
@@ -484,7 +484,7 @@ static struct bio *gfs2_chain_bio(struct bio *prev, unsigned int nr_iovecs) · 483 unmodified lines
484 new = bio_alloc(prev->bi_bdev, nr_iovecs, prev->bi_opf, GFP_NOIO);484 new = bio_alloc(prev->bi_bdev, nr_iovecs, prev->bi_opf, GFP_NOIO);
485 bio_clone_blkg_association(new, prev);485 bio_clone_blkg_association(new, prev);
486 new->bi_iter.bi_sector = bio_end_sector(prev);486 new->bi_iter.bi_sector = bio_end_sector(prev);
487 bio_chain(prev, new);487 bio_chain(new, prev);
488 submit_bio(prev);488 submit_bio(prev);
489 return new;489 return new;
490}490}