nfsd_read_splice_ok(9)
β¨ 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_readmay be used β slayfalseβnfsd_splice_readmust 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:
nfserrno(9)nfsd_lookup(9)nfsd_setattr(9)nfsd4_is_junction(9)nfsd_open_verified(9)nfsd_splice_read(9)nfsd_iter_read(9)nfsd_vfs_write(9)nfsd_read(9)nfsd_write(9)nfsd_commit(9)nfsd_create_setattr(9)nfsd_symlink(9)nfsd_link(9)nfsd_rename(9)nfsd_unlink(9)nfsd_readdir(9)nfsd_filp_close(9)nfsd_removexattr(9)nfsd_get_case_info(9)
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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms