summary refs log tree commit diff
path: root/fs/mpage.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2022-03-26 11:59:30 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2022-03-26 11:59:30 -0700
commit752d422e74c41084c3c9c9a159cb8d2795fa0c22 (patch)
tree61ab9a5fd11d7ad1f29d1d9c2f8e59210849fd7b /fs/mpage.c
parent561593a048d7d6915889706f4b503a65435c033a (diff)
parent61285ff72ae59e1603f908b13363e99883d67e09 (diff)
downloadlinux-752d422e74c41084c3c9c9a159cb8d2795fa0c22.tar.gz
Merge tag 'for-5.18/alloc-cleanups-2022-03-25' of git://git.kernel.dk/linux-block
Pull bio allocation fix from Jens Axboe:
 "We got some reports of users seeing:

	Unexpected gfp: 0x2 (__GFP_HIGHMEM). Fixing up to gfp: 0x1192888

  which is a regression caused by the bio allocation cleanups"

* tag 'for-5.18/alloc-cleanups-2022-03-25' of git://git.kernel.dk/linux-block:
  fs: do not pass __GFP_HIGHMEM to bio_alloc in do_mpage_readpage
Diffstat (limited to 'fs/mpage.c')
-rw-r--r--fs/mpage.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/mpage.c b/fs/mpage.c
index 3e18c6e82e60..1fe56f8c495f 100644
--- a/fs/mpage.c
+++ b/fs/mpage.c
@@ -148,13 +148,11 @@ static struct bio *do_mpage_readpage(struct mpage_readpage_args *args)
 	int op = REQ_OP_READ;
 	unsigned nblocks;
 	unsigned relative_block;
-	gfp_t gfp;
+	gfp_t gfp = mapping_gfp_constraint(page->mapping, GFP_KERNEL);
 
 	if (args->is_readahead) {
 		op |= REQ_RAHEAD;
-		gfp = readahead_gfp_mask(page->mapping);
-	} else {
-		gfp = mapping_gfp_constraint(page->mapping, GFP_KERNEL);
+		gfp |= __GFP_NORETRY | __GFP_NOWARN;
 	}
 
 	if (page_has_buffers(page))