iomap: Don't get an reference on ZERO_PAGE for direct I/O block zeroing
authorDavid Howells <dhowells@redhat.com>
Mon, 22 May 2023 20:57:39 +0000 (21:57 +0100)
committerJens Axboe <axboe@kernel.dk>
Wed, 24 May 2023 14:42:44 +0000 (08:42 -0600)
ZERO_PAGE can't go away, no need to hold an extra reference.

Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: John Hubbard <jhubbard@nvidia.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
cc: Al Viro <viro@zeniv.linux.org.uk>
cc: linux-fsdevel@vger.kernel.org
Reviewed-by: Christian Brauner <brauner@kernel.org>
Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20230522205744.2825689-2-dhowells@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/iomap/direct-io.c

index 019cc87..66a9f10 100644 (file)
@@ -203,7 +203,7 @@ static void iomap_dio_zero(const struct iomap_iter *iter, struct iomap_dio *dio,
        bio->bi_private = dio;
        bio->bi_end_io = iomap_dio_bio_end_io;
 
-       get_page(page);
+       bio_set_flag(bio, BIO_NO_PAGE_REF);
        __bio_add_page(bio, page, len, 0);
        iomap_dio_submit_bio(iter, dio, bio, pos);
 }