nfsd_file_di...list_delayed(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 nfsd_file_di...list_delayed(9) 🌸

okay so you found your way into the Kernel API Manual bestie, welcome, this is the nfsd_file_dispose_list_delayed page and honestly? she's a lil baddie with a very specific job πŸ’…


✨ NAME ✨

nfsd_file_dispose_list_delayed β€” queue dead files for nfsd thread disposal πŸ—‘οΈβœ¨


πŸ¦‹ SYNOPSIS πŸ¦‹

void nfsd_file_dispose_list_delayed (struct list_head *dispose );

like... that's the whole signature. no cap, that's it 🫢


πŸŽ€ ARGUMENTS πŸŽ€

  • dispose β€” the list of nfsd_files to be disposed πŸ’€ lowkey the main character here, everything goes through her

πŸ’– DESCRIPTION πŸ’–

So here's the vibe: this function transfers each file to the dispose list in its nfsd_net, then wakes an nfsd thread to do the actual close. yes, an actual nfsd thread, doing the actual work, not some random background lurker πŸ”₯

The whole point β€” and this is the iconic part β€” is that it keeps the cost of fput in the nfsd threads rather than in the shrinker or GC worker. it's giving "delegation queen" πŸ‘‘

⚠️ okay important, don't skip this: all callers must hold nfsd_gc_lock πŸ™ˆ that's so that nfsd_file_cache_shutdown_net can synchronize against them before draining the per-net dispose list. this guarantees nf_net is still live when we call net_generic. miss that lock and you're on your own, bestie 😭

🌈 SEE ALSO 🌈

Kernel file ./fs/nfsd/filecache.c β€” go read her sisters, they're all linked up:


and that's the page!! sourced straight from ./fs/nfsd, dated October 2026, and it's still titled nfsd_file_di...list_delayed(9) because the man page gods truncate the name and honestly we respect the mystery πŸ§šπŸ’œ ily, go hold that nfsd_gc_lock 🫢✨

πŸ“¦ where this page comes from