1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * NFS-private data for each "struct net". Accessed with net_generic(). 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #ifndef __NFS_NETNS_H__ 7*4882a593Smuzhiyun #define __NFS_NETNS_H__ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #include <linux/nfs4.h> 10*4882a593Smuzhiyun #include <net/net_namespace.h> 11*4882a593Smuzhiyun #include <net/netns/generic.h> 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun struct bl_dev_msg { 14*4882a593Smuzhiyun int32_t status; 15*4882a593Smuzhiyun uint32_t major, minor; 16*4882a593Smuzhiyun }; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun struct nfs_netns_client; 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun struct nfs_net { 21*4882a593Smuzhiyun struct cache_detail *nfs_dns_resolve; 22*4882a593Smuzhiyun struct rpc_pipe *bl_device_pipe; 23*4882a593Smuzhiyun struct bl_dev_msg bl_mount_reply; 24*4882a593Smuzhiyun wait_queue_head_t bl_wq; 25*4882a593Smuzhiyun struct mutex bl_mutex; 26*4882a593Smuzhiyun struct list_head nfs_client_list; 27*4882a593Smuzhiyun struct list_head nfs_volume_list; 28*4882a593Smuzhiyun #if IS_ENABLED(CONFIG_NFS_V4) 29*4882a593Smuzhiyun struct idr cb_ident_idr; /* Protected by nfs_client_lock */ 30*4882a593Smuzhiyun unsigned short nfs_callback_tcpport; 31*4882a593Smuzhiyun unsigned short nfs_callback_tcpport6; 32*4882a593Smuzhiyun int cb_users[NFS4_MAX_MINOR_VERSION + 1]; 33*4882a593Smuzhiyun #endif 34*4882a593Smuzhiyun struct nfs_netns_client *nfs_client; 35*4882a593Smuzhiyun spinlock_t nfs_client_lock; 36*4882a593Smuzhiyun ktime_t boot_time; 37*4882a593Smuzhiyun #ifdef CONFIG_PROC_FS 38*4882a593Smuzhiyun struct proc_dir_entry *proc_nfsfs; 39*4882a593Smuzhiyun #endif 40*4882a593Smuzhiyun }; 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun extern unsigned int nfs_net_id; 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun #endif 45