This patch series fixes a bug reported by Hui Zhu; see proposed patches v1 and v2: https://lore.kernel.org/linux-fsdevel/20230811035705.3296-1-teawaterz@xxxxxxxxxxxxxxxxx/ https://lore.kernel.org/linux-fsdevel/20230811071519.1094-1-teawaterz@xxxxxxxxxxxxxxxxx/ I decided to go in a rather different direction for this fix, and fix a related problem at the same time. I don't think there's any urgency to rush this into Linus' tree, nor have I marked it for stable. Reasonable people may disagree. For v2, I fixed a bug around the use of __GFP_ACCOUNT, and Jan Kara pushed me into making __getblk_gfp() disappear entirely (patches 5-8). It's currently churning through xfstests and has got up to generic/048. Matthew Wilcox (Oracle) (8): buffer: Pass GFP flags to folio_alloc_buffers() buffer: Hoist GFP flags from grow_dev_page() to __getblk_gfp() ext4: Use bdev_getblk() to avoid memory reclaim in readahead path buffer: Use bdev_getblk() to avoid memory reclaim in readahead path buffer: Convert getblk_unmovable() and __getblk() to use bdev_getblk() buffer: Convert sb_getblk() to call __getblk() ext4: Call bdev_getblk() from sb_getblk_gfp() buffer: Remove __getblk_gfp() fs/buffer.c | 79 ++++++++++++++++++++----------------- fs/ext4/super.c | 13 ++++-- include/linux/buffer_head.h | 53 ++++++++++++++----------- 3 files changed, 83 insertions(+), 62 deletions(-) -- 2.40.1