diff options
Diffstat (limited to 'fs/nfsd/netns.h')
| -rw-r--r-- | fs/nfsd/netns.h | 27 | 
1 files changed, 16 insertions, 11 deletions
diff --git a/fs/nfsd/netns.h b/fs/nfsd/netns.h index 935c1028c217..1b1a962a1804 100644 --- a/fs/nfsd/netns.h +++ b/fs/nfsd/netns.h @@ -11,6 +11,7 @@  #include <net/net_namespace.h>  #include <net/netns/generic.h>  #include <linux/percpu_counter.h> +#include <linux/siphash.h>  /* Hash tables for nfs4_clientid state */  #define CLIENT_HASH_BITS                 4 @@ -108,9 +109,8 @@ struct nfsd_net {  	bool nfsd_net_up;  	bool lockd_up; -	/* Time of server startup */ -	struct timespec64 nfssvc_boot; -	seqlock_t boot_lock; +	seqlock_t writeverf_lock; +	unsigned char writeverf[8];  	/*  	 * Max number of connections this nfsd container will allow. Defaults @@ -123,12 +123,13 @@ struct nfsd_net {  	u32 clverifier_counter;  	struct svc_serv *nfsd_serv; - -	wait_queue_head_t ntf_wq; -	atomic_t ntf_refcnt; - -	/* Allow umount to wait for nfsd state cleanup */ -	struct completion nfsd_shutdown_complete; +	/* When a listening socket is added to nfsd, keep_active is set +	 * and this justifies a reference on nfsd_serv.  This stops +	 * nfsd_serv from being freed.  When the number of threads is +	 * set, keep_active is cleared and the reference is dropped.  So +	 * when the last thread exits, the service will be destroyed. +	 */ +	int keep_active;  	/*  	 * clientid and stateid data for construction of net unique COPY @@ -184,6 +185,10 @@ struct nfsd_net {  	/* utsname taken from the process that starts the server */  	char			nfsd_name[UNX_MAXNODENAME+1]; + +	struct nfsd_fcache_disposal *fcache_disposal; + +	siphash_key_t		siphash_key;  };  /* Simple check to find out if a given net was properly initialized */ @@ -193,6 +198,6 @@ extern void nfsd_netns_free_versions(struct nfsd_net *nn);  extern unsigned int nfsd_net_id; -void nfsd_copy_boot_verifier(__be32 verf[2], struct nfsd_net *nn); -void nfsd_reset_boot_verifier(struct nfsd_net *nn); +void nfsd_copy_write_verifier(__be32 verf[2], struct nfsd_net *nn); +void nfsd_reset_write_verifier(struct nfsd_net *nn);  #endif /* __NFSD_NETNS_H__ */  |