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

Commit f5c8593b authored by Stanislav Kinsbursky's avatar Stanislav Kinsbursky Committed by J. Bruce Fields
Browse files

NFSd: use network-namespace-aware cache registering routines



v2: cache_register_net() and cache_unregister_net() GPL exports added

This is a cleanup patch. Hope, some day generic cache_register() and
cache_unregister() will be removed.

Signed-off-by: default avatarStanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent bd4620dd
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -1226,12 +1226,12 @@ nfsd_export_init(void)
	int rv;
	dprintk("nfsd: initializing export module.\n");

	rv = cache_register(&svc_export_cache);
	rv = cache_register_net(&svc_export_cache, &init_net);
	if (rv)
		return rv;
	rv = cache_register(&svc_expkey_cache);
	rv = cache_register_net(&svc_expkey_cache, &init_net);
	if (rv)
		cache_unregister(&svc_export_cache);
		cache_unregister_net(&svc_export_cache, &init_net);
	return rv;

}
@@ -1255,8 +1255,8 @@ nfsd_export_shutdown(void)

	dprintk("nfsd: shutting down export module.\n");

	cache_unregister(&svc_expkey_cache);
	cache_unregister(&svc_export_cache);
	cache_unregister_net(&svc_expkey_cache, &init_net);
	cache_unregister_net(&svc_export_cache, &init_net);
	svcauth_unix_purge();

	dprintk("nfsd: export shutdown complete.\n");
+6 −5
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@
#include <linux/seq_file.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <net/net_namespace.h>
#include "idmap.h"
#include "nfsd.h"

@@ -466,20 +467,20 @@ nfsd_idmap_init(void)
{
	int rv;

	rv = cache_register(&idtoname_cache);
	rv = cache_register_net(&idtoname_cache, &init_net);
	if (rv)
		return rv;
	rv = cache_register(&nametoid_cache);
	rv = cache_register_net(&nametoid_cache, &init_net);
	if (rv)
		cache_unregister(&idtoname_cache);
		cache_unregister_net(&idtoname_cache, &init_net);
	return rv;
}

void
nfsd_idmap_shutdown(void)
{
	cache_unregister(&idtoname_cache);
	cache_unregister(&nametoid_cache);
	cache_unregister_net(&idtoname_cache, &init_net);
	cache_unregister_net(&nametoid_cache, &init_net);
}

static int
+2 −0
Original line number Diff line number Diff line
@@ -1641,6 +1641,7 @@ int cache_register_net(struct cache_detail *cd, struct net *net)
		sunrpc_destroy_cache_detail(cd);
	return ret;
}
EXPORT_SYMBOL_GPL(cache_register_net);

int cache_register(struct cache_detail *cd)
{
@@ -1653,6 +1654,7 @@ void cache_unregister_net(struct cache_detail *cd, struct net *net)
	remove_cache_proc_entries(cd, net);
	sunrpc_destroy_cache_detail(cd);
}
EXPORT_SYMBOL_GPL(cache_unregister_net);

void cache_unregister(struct cache_detail *cd)
{