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: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>hifive-unleashed-5.1
parent
73a79706d7
commit
129d1977ed
|
@ -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 @@
|
||||||
#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)
|
||||||
{
|
{
|
||||||
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)
|
||||||
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
|
||||||
|
|
||||||
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[];
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
/*
|
||||||
|
* 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();
|
||||||
|
}
|
Loading…
Reference in New Issue