Re: [PATCH] netfs: fix ENOMEM handling in netfs_writepages() to drain all dirty folios
From: Zhou, Yun
Date: Thu Jul 23 2026 - 03:32:27 EST
On 7/23/26 12:59, Christoph Hellwig wrote:
On Tue, Jul 07, 2026 at 01:25:55PM +0800, Yun Zhou wrote:
When netfs_create_write_req() fails with -ENOMEM in netfs_writepages(),
the couldnt_start error path redirties and unlocks the first folio,
writeback must use mempools to back resoures, or __GFP_NOFAIL if it
can't for some reason. -ENOMEM must not happend in writeback paths
or your toast. So please fix the cause of this error and not the
symptoms.
Thanks for the review. You're right - writeback should not fail with ENOMEM.
I'll follow your suggestion and use __GFP_NOFAIL for the allocation in the writeback path. The ENOMEM here comes from rolling_buffer_init() which uses plain GFP_NOFS for its folio_queue allocation.
Using mempools would be the more robust approach, but it requires adding a new mempool, modifying the rolling_buffer_init() signature and all its callers, plus the init/destroy lifecycle - a much larger change. __GFP_NOFAIL is a minimal fix that achieves the same goal for the writeback path.
Will send v2 shortly.