summaryrefslogtreecommitdiffstats
path: root/fs/nfsd/nfsctl.c
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@citi.umich.edu>2007-11-09 19:44:06 +0100
committerJ. Bruce Fields <bfields@citi.umich.edu>2008-02-01 22:42:03 +0100
commit26808d3f10b1213bbb6e27d441be40e20ab84611 (patch)
tree38b2769d479a8cd44f2e242ef1f16b395fdf4997 /fs/nfsd/nfsctl.c
parentknfsd: cleanup nfsd4 properly on module init failure (diff)
downloadlinux-26808d3f10b1213bbb6e27d441be40e20ab84611.tar.xz
linux-26808d3f10b1213bbb6e27d441be40e20ab84611.zip
nfsd: cleanup nfsd module initialization cleanup
Handle the failure case here with something closer to the standard kernel style. Doesn't really matter for now, but I'd like to add a few more failure cases, and then this'll help. Acked-by: NeilBrown <neilb@suse.de> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Diffstat (limited to '')
-rw-r--r--fs/nfsd/nfsctl.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c
index d8d50a773a5b..ecf377944286 100644
--- a/fs/nfsd/nfsctl.c
+++ b/fs/nfsd/nfsctl.c
@@ -694,16 +694,18 @@ static int __init init_nfsd(void)
entry->proc_fops = &exports_operations;
}
retval = register_filesystem(&nfsd_fs_type);
- if (retval) {
- nfsd_idmap_shutdown();
- nfsd_export_shutdown();
- nfsd_cache_shutdown();
- remove_proc_entry("fs/nfs/exports", NULL);
- remove_proc_entry("fs/nfs", NULL);
- nfsd_stat_shutdown();
- nfsd_lockd_shutdown();
- nfsd4_free_slabs();
- }
+ if (retval)
+ goto out_free_all;
+ return 0;
+out_free_all:
+ nfsd_idmap_shutdown();
+ nfsd_export_shutdown();
+ nfsd_cache_shutdown();
+ remove_proc_entry("fs/nfs/exports", NULL);
+ remove_proc_entry("fs/nfs", NULL);
+ nfsd_stat_shutdown();
+ nfsd_lockd_shutdown();
+ nfsd4_free_slabs();
return retval;
}