nfsd_read_splice_ok(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ nfsd_read_splice_ok(9) ✨

okay so bestie, this is a page from the Kernel API Manual (section 9, kernel-functions territory 🧚) and it's literally just one tiny little vibe-check function. don't let the tiny synopsis fool you though β€” there's lore here πŸ’…


πŸ’– NAME πŸ’–

nfsd_read_splice_ok β€” the little function that checks if spliced reading is even allowed rn


πŸ¦‹ SYNOPSIS πŸ¦‹

bool nfsd_read_splice_ok (struct svc_rqst *rqstp );

🌸 ARGUMENTS 🌸

  • rqstp β€” the RPC transaction context 🫢 like, the whole situation for this one request, wrapped up in a struct

πŸŽ€ DESCRIPTION πŸŽ€

okay so it returns a bool, and here's the tea on what the two possible answers mean:

  • true β€” nfsd_splice_read may be used βœ… slay
  • false β€” nfsd_splice_read must not be used πŸ™…β€β™€οΈ absolutely not, do not

now for the why, because this is the interesting part, no cap πŸ‘‘

NFS READ normally uses splice to send data in-place. iconic, efficient, main character energy. However β€” and this is the plot twist 😭 β€” the data in cache can change after the reply's MIC is computed but before the RPC reply is actually sent.

so to prevent the client from rejecting the server-computed MIC in this somewhat rare case, do not use splice with the GSS integrity and privacy services πŸ’€

like... it's a rare case, but rare isn't never, and a rejected MIC is a bad time. so the function says no. vibe check failed. respectfully. πŸ™ˆ


🌈 SEE ALSO 🌈

kernel file ./fs/nfsd/vfs.c β€” that's where the actual code lives, go say hi 🫢

and the whole friend group:


aaand that's the whole page πŸŽ‰ short, sweet, and highkey important. mwah πŸ’‹

source: ./fs/nfsd Β· dated October 2026 Β· part of the Kernel API Manual, section 9 πŸ¦‹βœ¨ bye bestie, go read some NFS code πŸ’œ

πŸ“¦ where this page comes from