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.