[PATCH v2 3/6] NFSD: Document per-export read_io= and write_io= options
From: Jeff Layton
Date: Thu Oct 29 2026 - 08:08:22 EST
Describe the new export options and their precedence over the global
debugfs knobs.
Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx>
---
Documentation/filesystems/nfs/nfsd-io-modes.rst | 28 +++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/Documentation/filesystems/nfs/nfsd-io-modes.rst b/Documentation/filesystems/nfs/nfsd-io-modes.rst
index 7b186201c6b6..1ad30518c234 100644
--- a/Documentation/filesystems/nfs/nfsd-io-modes.rst
+++ b/Documentation/filesystems/nfs/nfsd-io-modes.rst
@@ -41,6 +41,34 @@ corresponding IO operation's debugfs interface, e.g.::
If you experiment with NFSD's IO modes on a recent kernel and have
interesting results, please report them to linux-nfs@xxxxxxxxxxxxxxx
+NFSD PER-EXPORT IO MODES
+========================
+
+In addition to the global debugfs knobs above, the IO mode may be set
+independently for each export via the ``read_io=`` and ``write_io=``
+export options, e.g.::
+
+ /srv/data client(ro,read_io=direct,write_io=dontcache)
+
+Each option accepts one of ``buffered``, ``dontcache``, or ``direct``,
+with the same meanings as the corresponding debugfs values.
+
+An export without an explicit ``read_io=`` (or ``write_io=``) setting
+follows the global ``io_cache_read`` (or ``io_cache_write``) knob, so
+the effective default for both reads and writes remains buffered IO.
+An explicit per-export setting pins that export's IO mode regardless
+of the global knob.
+
+NFSD uses splice only for READs whose effective IO mode is
+``buffered``. The ``disable-splice-read`` debugfs knob turns splice off
+for all exports, but changes neither the global nor any per-export IO
+mode.
+
+The per-export settings are reported in
+/proc/net/rpc/nfsd.export/content, e.g.::
+
+ /srv/data client(...,read_io=direct,write_io=dontcache)
+
NFSD DONTCACHE
==============
--
2.56.0