]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ext4: initialize the write hint in io_submit_init_bio
authorChristoph Hellwig <hch@lst.de>
Mon, 2 Mar 2026 14:18:06 +0000 (06:18 -0800)
committerEric Biggers <ebiggers@kernel.org>
Mon, 9 Mar 2026 20:31:50 +0000 (13:31 -0700)
Make io_submit_init_bio complete by also initializing the write hint.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20260302141922.370070-2-hch@lst.de
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
fs/ext4/page-io.c

index a8c95eee91b79e36ebde09fac9033be359baf8fc..b8cf9f6f9e0b32c25b180a5cea577bc613154ba6 100644 (file)
@@ -416,6 +416,7 @@ void ext4_io_submit_init(struct ext4_io_submit *io,
 }
 
 static void io_submit_init_bio(struct ext4_io_submit *io,
+                              struct inode *inode,
                               struct buffer_head *bh)
 {
        struct bio *bio;
@@ -429,6 +430,7 @@ static void io_submit_init_bio(struct ext4_io_submit *io,
        bio->bi_iter.bi_sector = bh->b_blocknr * (bh->b_size >> 9);
        bio->bi_end_io = ext4_end_bio;
        bio->bi_private = ext4_get_io_end(io->io_end);
+       bio->bi_write_hint = inode->i_write_hint;
        io->io_bio = bio;
        io->io_next_block = bh->b_blocknr;
        wbc_init_bio(io->io_wbc, bio);
@@ -445,10 +447,8 @@ static void io_submit_add_bh(struct ext4_io_submit *io,
 submit_and_retry:
                ext4_io_submit(io);
        }
-       if (io->io_bio == NULL) {
-               io_submit_init_bio(io, bh);
-               io->io_bio->bi_write_hint = inode->i_write_hint;
-       }
+       if (io->io_bio == NULL)
+               io_submit_init_bio(io, inode, bh);
        if (!bio_add_folio(io->io_bio, io_folio, bh->b_size, bh_offset(bh)))
                goto submit_and_retry;
        wbc_account_cgroup_owner(io->io_wbc, folio, bh->b_size);