mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	nfsd: document kernel interfaces for nfsd configuration
These are only needed by nfs-utils. But I needed to remind myself how they worked recently and thought this might be helpful. It's short and incomplete for now as I was only interested in startup, shutdown, and configuration of listening sockets. Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
		
							parent
							
								
									65b2e6656b
								
							
						
					
					
						commit
						8a4c6e19cf
					
				
					 1 changed files with 41 additions and 0 deletions
				
			
		
							
								
								
									
										41
									
								
								Documentation/filesystems/nfs/nfsd-admin-interfaces.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								Documentation/filesystems/nfs/nfsd-admin-interfaces.txt
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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.
 | 
			
		||||
		Loading…
	
		Reference in a new issue