123456789101112131415161718192021222324252627282930313233343536373839404142 |
- 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.
|