Commit | Line | Data |
---|---|---|
8a4c6e19 BF |
1 | Administrative interfaces for nfsd |
2 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
3 | ||
4 | Note that normally these interfaces are used only by the utilities in | |
5 | nfs-utils. | |
6 | ||
7 | nfsd is controlled mainly by pseudofiles under the "nfsd" filesystem, | |
8 | which is normally mounted at /proc/fs/nfsd/. | |
9 | ||
10 | The server is always started by the first write of a nonzero value to | |
11 | nfsd/threads. | |
12 | ||
13 | Before doing that, NFSD can be told which sockets to listen on by | |
14 | writing to nfsd/portlist; that write may be: | |
15 | ||
16 | - an ascii-encoded file descriptor, which should refer to a | |
17 | bound (and listening, for tcp) socket, or | |
18 | - "transportname port", where transportname is currently either | |
19 | "udp", "tcp", or "rdma". | |
20 | ||
21 | If nfsd is started without doing any of these, then it will create one | |
22 | udp and one tcp listener at port 2049 (see nfsd_init_socks). | |
23 | ||
24 | On startup, nfsd and lockd grace periods start. | |
25 | ||
26 | nfsd is shut down by a write of 0 to nfsd/threads. All locks and state | |
27 | are thrown away at that point. | |
28 | ||
29 | Between startup and shutdown, the number of threads may be adjusted up | |
30 | or down by additional writes to nfsd/threads or by writes to | |
31 | nfsd/pool_threads. | |
32 | ||
33 | For more detail about files under nfsd/ and what they control, see | |
34 | fs/nfsd/nfsctl.c; most of them have detailed comments. | |
35 | ||
36 | Implementation notes | |
37 | ^^^^^^^^^^^^^^^^^^^^ | |
38 | ||
39 | Note that the rpc server requires the caller to serialize addition and | |
40 | removal of listening sockets, and startup and shutdown of the server. | |
41 | For nfsd this is done using nfsd_mutex. |