Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2f72c9b7 authored by Pavel Emelyanov's avatar Pavel Emelyanov Committed by J. Bruce Fields
Browse files

sunrpc: The per-net skeleton



Register empty per-net operations for the sunrpc layer.

Signed-off-by: default avatarPavel Emelyanov <xemul@openvz.org>
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent 4fb8518b
Loading
Loading
Loading
Loading

net/sunrpc/netns.h

0 → 100644
+12 −0
Original line number Original line Diff line number Diff line
#ifndef __SUNRPC_NETNS_H__
#define __SUNRPC_NETNS_H__

#include <net/net_namespace.h>
#include <net/netns/generic.h>

struct sunrpc_net {
};

extern int sunrpc_net_id;

#endif
+30 −1
Original line number Original line Diff line number Diff line
@@ -22,6 +22,26 @@
#include <linux/sunrpc/rpc_pipe_fs.h>
#include <linux/sunrpc/rpc_pipe_fs.h>
#include <linux/sunrpc/xprtsock.h>
#include <linux/sunrpc/xprtsock.h>


#include "netns.h"

int sunrpc_net_id;

static __net_init int sunrpc_init_net(struct net *net)
{
	return 0;
}

static __net_exit void sunrpc_exit_net(struct net *net)
{
}

static struct pernet_operations sunrpc_net_ops = {
	.init = sunrpc_init_net,
	.exit = sunrpc_exit_net,
	.id = &sunrpc_net_id,
	.size = sizeof(struct sunrpc_net),
};

extern struct cache_detail ip_map_cache, unix_gid_cache;
extern struct cache_detail ip_map_cache, unix_gid_cache;


extern void cleanup_rpcb_clnt(void);
extern void cleanup_rpcb_clnt(void);
@@ -38,18 +58,26 @@ init_sunrpc(void)
	err = rpcauth_init_module();
	err = rpcauth_init_module();
	if (err)
	if (err)
		goto out3;
		goto out3;

	cache_initialize();

	err = register_pernet_subsys(&sunrpc_net_ops);
	if (err)
		goto out4;
#ifdef RPC_DEBUG
#ifdef RPC_DEBUG
	rpc_register_sysctl();
	rpc_register_sysctl();
#endif
#endif
#ifdef CONFIG_PROC_FS
#ifdef CONFIG_PROC_FS
	rpc_proc_init();
	rpc_proc_init();
#endif
#endif
	cache_initialize();
	cache_register(&ip_map_cache);
	cache_register(&ip_map_cache);
	cache_register(&unix_gid_cache);
	cache_register(&unix_gid_cache);
	svc_init_xprt_sock();	/* svc sock transport */
	svc_init_xprt_sock();	/* svc sock transport */
	init_socket_xprt();	/* clnt sock transport */
	init_socket_xprt();	/* clnt sock transport */
	return 0;
	return 0;

out4:
	rpcauth_remove_module();
out3:
out3:
	rpc_destroy_mempool();
	rpc_destroy_mempool();
out2:
out2:
@@ -69,6 +97,7 @@ cleanup_sunrpc(void)
	rpc_destroy_mempool();
	rpc_destroy_mempool();
	cache_unregister(&ip_map_cache);
	cache_unregister(&ip_map_cache);
	cache_unregister(&unix_gid_cache);
	cache_unregister(&unix_gid_cache);
	unregister_pernet_subsys(&sunrpc_net_ops);
#ifdef RPC_DEBUG
#ifdef RPC_DEBUG
	rpc_unregister_sysctl();
	rpc_unregister_sysctl();
#endif
#endif