xref: /linux/net/sunrpc/netns.h (revision ec8f24b7faaf3d4799a7c3f4c1b87f6b02778ad1)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __SUNRPC_NETNS_H__
3 #define __SUNRPC_NETNS_H__
4 
5 #include <net/net_namespace.h>
6 #include <net/netns/generic.h>
7 
8 struct cache_detail;
9 
10 struct sunrpc_net {
11 	struct proc_dir_entry *proc_net_rpc;
12 	struct cache_detail *ip_map_cache;
13 	struct cache_detail *unix_gid_cache;
14 	struct cache_detail *rsc_cache;
15 	struct cache_detail *rsi_cache;
16 
17 	struct super_block *pipefs_sb;
18 	struct rpc_pipe *gssd_dummy;
19 	struct mutex pipefs_sb_lock;
20 
21 	struct list_head all_clients;
22 	spinlock_t rpc_client_lock;
23 
24 	struct rpc_clnt *rpcb_local_clnt;
25 	struct rpc_clnt *rpcb_local_clnt4;
26 	spinlock_t rpcb_clnt_lock;
27 	unsigned int rpcb_users;
28 	unsigned int rpcb_is_af_local : 1;
29 
30 	struct mutex gssp_lock;
31 	struct rpc_clnt *gssp_clnt;
32 	int use_gss_proxy;
33 	int pipe_version;
34 	atomic_t pipe_users;
35 	struct proc_dir_entry *use_gssp_proc;
36 };
37 
38 extern unsigned int sunrpc_net_id;
39 
40 int ip_map_cache_create(struct net *);
41 void ip_map_cache_destroy(struct net *);
42 
43 #endif
44