Commit 61285ff7 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe

fs: do not pass __GFP_HIGHMEM to bio_alloc in do_mpage_readpage

The mpage bio alloc cleanup accidentally removed clearing ~GFP_KERNEL
bits from the mask passed to bio_alloc.  Fix this up in a slightly
less obsfucated way that mirrors what iomap does in its readpage code.

Fixes: 77c436de ("mpage: pass the operation to bio_alloc")
Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Tested-by: default avatarRyusuke Konishi <konishi.ryusuke@gmail.com>
Link: https://lore.kernel.org/r/20220323153952.1418560-1-hch@lst.deSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 64bf0eef
...@@ -148,13 +148,11 @@ static struct bio *do_mpage_readpage(struct mpage_readpage_args *args) ...@@ -148,13 +148,11 @@ static struct bio *do_mpage_readpage(struct mpage_readpage_args *args)
int op = REQ_OP_READ; int op = REQ_OP_READ;
unsigned nblocks; unsigned nblocks;
unsigned relative_block; unsigned relative_block;
gfp_t gfp; gfp_t gfp = mapping_gfp_constraint(page->mapping, GFP_KERNEL);
if (args->is_readahead) { if (args->is_readahead) {
op |= REQ_RAHEAD; op |= REQ_RAHEAD;
gfp = readahead_gfp_mask(page->mapping); gfp |= __GFP_NORETRY | __GFP_NOWARN;
} else {
gfp = mapping_gfp_constraint(page->mapping, GFP_KERNEL);
} }
if (page_has_buffers(page)) if (page_has_buffers(page))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment