Commit 129d1977 authored by Bryan Schumaker's avatar Bryan Schumaker Committed by Trond Myklebust

NFS: Create an init_nfs_v4() function

I want to initialize all of NFS v4 in a single function that will
eventually be used as the v4 module init function.
Signed-off-by: default avatarBryan Schumaker <bjschuma@netapp.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 73a79706
...@@ -13,7 +13,7 @@ nfs-$(CONFIG_NFS_V2) += proc.o nfs2xdr.o ...@@ -13,7 +13,7 @@ nfs-$(CONFIG_NFS_V2) += proc.o nfs2xdr.o
nfs-$(CONFIG_NFS_V3) += nfs3proc.o nfs3xdr.o nfs-$(CONFIG_NFS_V3) += nfs3proc.o nfs3xdr.o
nfs-$(CONFIG_NFS_V3_ACL) += nfs3acl.o nfs-$(CONFIG_NFS_V3_ACL) += nfs3acl.o
nfs-$(CONFIG_NFS_V4) += nfs4proc.o nfs4xdr.o nfs4state.o nfs4renewd.o \ nfs-$(CONFIG_NFS_V4) += nfs4proc.o nfs4xdr.o nfs4state.o nfs4renewd.o \
delegation.o idmap.o \ nfs4super.o delegation.o idmap.o \
callback.o callback_xdr.o callback_proc.o \ callback.o callback_xdr.o callback_proc.o \
nfs4namespace.o nfs4namespace.o
nfs-$(CONFIG_NFS_V4_1) += pnfs.o pnfs_dev.o nfs-$(CONFIG_NFS_V4_1) += pnfs.o pnfs_dev.o
......
...@@ -32,7 +32,6 @@ ...@@ -32,7 +32,6 @@
#include <linux/lockd/bind.h> #include <linux/lockd/bind.h>
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/mount.h> #include <linux/mount.h>
#include <linux/nfs_idmap.h>
#include <linux/vfs.h> #include <linux/vfs.h>
#include <linux/inet.h> #include <linux/inet.h>
#include <linux/nfs_xdr.h> #include <linux/nfs_xdr.h>
...@@ -1628,87 +1627,96 @@ static int __init init_nfs_fs(void) ...@@ -1628,87 +1627,96 @@ static int __init init_nfs_fs(void)
{ {
int err; int err;
err = nfs_idmap_init();
if (err < 0)
goto out10;
err = nfs_dns_resolver_init(); err = nfs_dns_resolver_init();
if (err < 0) if (err < 0)
goto out9; goto out11;
err = register_pernet_subsys(&nfs_net_ops); err = register_pernet_subsys(&nfs_net_ops);
if (err < 0) if (err < 0)
goto out8; goto out10;
err = nfs_fscache_register(); err = nfs_fscache_register();
if (err < 0) if (err < 0)
goto out7; goto out9;
err = nfsiod_start(); err = nfsiod_start();
if (err) if (err)
goto out6; goto out8;
err = nfs_fs_proc_init(); err = nfs_fs_proc_init();
if (err) if (err)
goto out5; goto out7;
err = nfs_init_nfspagecache(); err = nfs_init_nfspagecache();
if (err) if (err)
goto out4; goto out6;
err = nfs_init_inodecache(); err = nfs_init_inodecache();
if (err) if (err)
goto out3; goto out5;
err = nfs_init_readpagecache(); err = nfs_init_readpagecache();
if (err) if (err)
goto out2; goto out4;
err = nfs_init_writepagecache(); err = nfs_init_writepagecache();
if (err) if (err)
goto out1; goto out3;
err = nfs_init_directcache(); err = nfs_init_directcache();
if (err) if (err)
goto out0; goto out2;
#ifdef CONFIG_PROC_FS #ifdef CONFIG_PROC_FS
rpc_proc_register(&init_net, &nfs_rpcstat); rpc_proc_register(&init_net, &nfs_rpcstat);
#endif #endif
#ifdef CONFIG_NFS_V4
err = init_nfs_v4();
if (err)
goto out1;
#endif
if ((err = register_nfs_fs()) != 0) if ((err = register_nfs_fs()) != 0)
goto out; goto out0;
return 0; return 0;
out: out0:
#ifdef CONFIG_NFS_V4
exit_nfs_v4();
out1:
#endif
#ifdef CONFIG_PROC_FS #ifdef CONFIG_PROC_FS
rpc_proc_unregister(&init_net, "nfs"); rpc_proc_unregister(&init_net, "nfs");
#endif #endif
nfs_destroy_directcache(); nfs_destroy_directcache();
out0:
nfs_destroy_writepagecache();
out1:
nfs_destroy_readpagecache();
out2: out2:
nfs_destroy_inodecache(); nfs_destroy_writepagecache();
out3: out3:
nfs_destroy_nfspagecache(); nfs_destroy_readpagecache();
out4: out4:
nfs_fs_proc_exit(); nfs_destroy_inodecache();
out5: out5:
nfsiod_stop(); nfs_destroy_nfspagecache();
out6: out6:
nfs_fscache_unregister(); nfs_fs_proc_exit();
out7: out7:
unregister_pernet_subsys(&nfs_net_ops); nfsiod_stop();
out8: out8:
nfs_dns_resolver_destroy(); nfs_fscache_unregister();
out9: out9:
nfs_idmap_quit(); unregister_pernet_subsys(&nfs_net_ops);
out10: out10:
nfs_dns_resolver_destroy();
out11:
return err; return err;
} }
static void __exit exit_nfs_fs(void) static void __exit exit_nfs_fs(void)
{ {
#ifdef CONFIG_NFS_V4
exit_nfs_v4();
#endif
nfs_destroy_directcache(); nfs_destroy_directcache();
nfs_destroy_writepagecache(); nfs_destroy_writepagecache();
nfs_destroy_readpagecache(); nfs_destroy_readpagecache();
...@@ -1717,7 +1725,6 @@ static void __exit exit_nfs_fs(void) ...@@ -1717,7 +1725,6 @@ static void __exit exit_nfs_fs(void)
nfs_fscache_unregister(); nfs_fscache_unregister();
unregister_pernet_subsys(&nfs_net_ops); unregister_pernet_subsys(&nfs_net_ops);
nfs_dns_resolver_destroy(); nfs_dns_resolver_destroy();
nfs_idmap_quit();
#ifdef CONFIG_PROC_FS #ifdef CONFIG_PROC_FS
rpc_proc_unregister(&init_net, "nfs"); rpc_proc_unregister(&init_net, "nfs");
#endif #endif
......
...@@ -364,6 +364,10 @@ extern void nfs4_free_lock_state(struct nfs_server *server, struct nfs4_lock_sta ...@@ -364,6 +364,10 @@ extern void nfs4_free_lock_state(struct nfs_server *server, struct nfs4_lock_sta
extern const nfs4_stateid zero_stateid; extern const nfs4_stateid zero_stateid;
/* nfs4super.c */
int init_nfs_v4(void);
void exit_nfs_v4(void);
/* nfs4xdr.c */ /* nfs4xdr.c */
extern struct rpc_procinfo nfs4_procedures[]; extern struct rpc_procinfo nfs4_procedures[];
......
/*
* Copyright (c) 2012 Bryan Schumaker <bjschuma@netapp.com>
*/
#include <linux/init.h>
#include <linux/nfs_idmap.h>
int __init init_nfs_v4(void)
{
int err;
err = nfs_idmap_init();
if (err)
goto out;
return 0;
out:
return err;
}
void __exit exit_nfs_v4(void)
{
nfs_idmap_quit();
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment