18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#ifndef __SUNRPC_NETNS_H__
38c2ecf20Sopenharmony_ci#define __SUNRPC_NETNS_H__
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#include <net/net_namespace.h>
68c2ecf20Sopenharmony_ci#include <net/netns/generic.h>
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_cistruct cache_detail;
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_cistruct sunrpc_net {
118c2ecf20Sopenharmony_ci	struct proc_dir_entry *proc_net_rpc;
128c2ecf20Sopenharmony_ci	struct cache_detail *ip_map_cache;
138c2ecf20Sopenharmony_ci	struct cache_detail *unix_gid_cache;
148c2ecf20Sopenharmony_ci	struct cache_detail *rsc_cache;
158c2ecf20Sopenharmony_ci	struct cache_detail *rsi_cache;
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci	struct super_block *pipefs_sb;
188c2ecf20Sopenharmony_ci	struct rpc_pipe *gssd_dummy;
198c2ecf20Sopenharmony_ci	struct mutex pipefs_sb_lock;
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci	struct list_head all_clients;
228c2ecf20Sopenharmony_ci	spinlock_t rpc_client_lock;
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci	struct rpc_clnt *rpcb_local_clnt;
258c2ecf20Sopenharmony_ci	struct rpc_clnt *rpcb_local_clnt4;
268c2ecf20Sopenharmony_ci	spinlock_t rpcb_clnt_lock;
278c2ecf20Sopenharmony_ci	unsigned int rpcb_users;
288c2ecf20Sopenharmony_ci	unsigned int rpcb_is_af_local : 1;
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci	struct mutex gssp_lock;
318c2ecf20Sopenharmony_ci	struct rpc_clnt *gssp_clnt;
328c2ecf20Sopenharmony_ci	int use_gss_proxy;
338c2ecf20Sopenharmony_ci	int pipe_version;
348c2ecf20Sopenharmony_ci	atomic_t pipe_users;
358c2ecf20Sopenharmony_ci	struct proc_dir_entry *use_gssp_proc;
368c2ecf20Sopenharmony_ci};
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ciextern unsigned int sunrpc_net_id;
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ciint ip_map_cache_create(struct net *);
418c2ecf20Sopenharmony_civoid ip_map_cache_destroy(struct net *);
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci#endif
44