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
8struct cache_detail;
9
10struct 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	struct proc_dir_entry *gss_krb5_enctypes;
37};
38
39extern unsigned int sunrpc_net_id;
40
41int ip_map_cache_create(struct net *);
42void ip_map_cache_destroy(struct net *);
43
44#endif
45