]> Gentwo Git Trees - linux/.git/commit
NFSD: Implement NFSD_IO_DIRECT for NFS WRITE
authorMike Snitzer <snitzer@kernel.org>
Tue, 11 Nov 2025 14:59:31 +0000 (09:59 -0500)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 1 Dec 2025 14:57:10 +0000 (09:57 -0500)
commit06c5c97293e3fca99ce15da157068edf45a7c6e4
tree1493d0a45a2cc0077914c18d91b9027c2537f43e
parente3e8e176ca4876e6212582022ad80835dddc9de4
NFSD: Implement NFSD_IO_DIRECT for NFS WRITE

When NFSD_IO_DIRECT is selected via the
/sys/kernel/debug/nfsd/io_cache_write experimental tunable, split
incoming unaligned NFS WRITE requests into a prefix, middle and
suffix segment, as needed. The middle segment is now DIO-aligned and
the prefix and/or suffix are unaligned. Synchronous buffered IO is
used for the unaligned segments, and IOCB_DIRECT is used for the
middle DIO-aligned extent.

Although IOCB_DIRECT avoids the use of the page cache, by itself it
doesn't guarantee data durability. For UNSTABLE WRITE requests,
durability is obtained by a subsequent NFS COMMIT request.

Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Co-developed-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/debugfs.c
fs/nfsd/trace.h
fs/nfsd/vfs.c