]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
xfs: fix incorrect use of gfp flags in xfs_buf_alloc_backing_mem
authorChristoph Hellwig <hch@lst.de>
Wed, 17 Jun 2026 05:58:04 +0000 (07:58 +0200)
committerCarlos Maiolino <cem@kernel.org>
Mon, 29 Jun 2026 07:37:06 +0000 (09:37 +0200)
commit0144bcf619602e82843a514431d3cf2cd13ec08a
tree18fc9ab7380287fbc5f199a75b987b590fd7a4fe
parent27d7d15184d701b6e4db2b7431e4cee67a041a1c
xfs: fix incorrect use of gfp flags in xfs_buf_alloc_backing_mem

xfs_buf_alloc_backing_mem currently has two issues with how the GFP_
flags are set:

  - when aiming for a large folio allocation, the gfp mask is adjusted
    to try less hard, but these flags then persist for the vmalloc
    allocation, which is bogus.
  - the __GFP_NOFAIL for small allocations is also applied when readahead
    force __GFP_NORETRY which doesn't make any sense.

Fix this by only applying __GFP_NOFAIL when __GFP_NORETRY is not set,
and by reordering the code so that the large folio gfp adjustments
are performed locally just for that allocation.

Fixes: 94c78cfa3bd1 ("xfs: convert buffer cache to use high order folios")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
fs/xfs/xfs_buf.c