Re: [PATCH for-akpm for-6.14-rcX] NFS: fix nfs_release_folio() to not call nfs_wb_folio() from kcompactd

Christoph Hellwig
2025-02-26T14:58:19Z

On Mon, Feb 24, 2025 at 07:33:01PM -0500, Mike Snitzer wrote:
> Add PF_KCOMPACTD flag and current_is_kcompactd() helper to check for
> it so nfs_release_folio() can skip calling nfs_wb_folio() from
> kcompactd.
>
> Otherwise NFS can deadlock waiting for kcompactd enduced writeback
> which recurses back to NFS (which triggers writeback to NFSD via
> NFS loopback mount on the same host, NFSD blocks waiting for XFS's
> call to __filemap_get_folio):

Having a flag for a specific kernel thread feels wrong. I'm not an
expert in this area, but as fast as I can tell the problem is that
kcompactd should be calling into ->release_folio without __GFP_IO
set.