|
@@ -0,0 +1,41 @@
|
|
|
+Administrative interfaces for nfsd
|
|
|
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
+
|
|
|
+Note that normally these interfaces are used only by the utilities in
|
|
|
+nfs-utils.
|
|
|
+
|
|
|
+nfsd is controlled mainly by pseudofiles under the "nfsd" filesystem,
|
|
|
+which is normally mounted at /proc/fs/nfsd/.
|
|
|
+
|
|
|
+The server is always started by the first write of a nonzero value to
|
|
|
+nfsd/threads.
|
|
|
+
|
|
|
+Before doing that, NFSD can be told which sockets to listen on by
|
|
|
+writing to nfsd/portlist; that write may be:
|
|
|
+
|
|
|
+ - an ascii-encoded file descriptor, which should refer to a
|
|
|
+ bound (and listening, for tcp) socket, or
|
|
|
+ - "transportname port", where transportname is currently either
|
|
|
+ "udp", "tcp", or "rdma".
|
|
|
+
|
|
|
+If nfsd is started without doing any of these, then it will create one
|
|
|
+udp and one tcp listener at port 2049 (see nfsd_init_socks).
|
|
|
+
|
|
|
+On startup, nfsd and lockd grace periods start.
|
|
|
+
|
|
|
+nfsd is shut down by a write of 0 to nfsd/threads. All locks and state
|
|
|
+are thrown away at that point.
|
|
|
+
|
|
|
+Between startup and shutdown, the number of threads may be adjusted up
|
|
|
+or down by additional writes to nfsd/threads or by writes to
|
|
|
+nfsd/pool_threads.
|
|
|
+
|
|
|
+For more detail about files under nfsd/ and what they control, see
|
|
|
+fs/nfsd/nfsctl.c; most of them have detailed comments.
|
|
|
+
|
|
|
+Implementation notes
|
|
|
+^^^^^^^^^^^^^^^^^^^^
|
|
|
+
|
|
|
+Note that the rpc server requires the caller to serialize addition and
|
|
|
+removal of listening sockets, and startup and shutdown of the server.
|
|
|
+For nfsd this is done using nfsd_mutex.
|