diff options
author | J. Bruce Fields <bfields@citi.umich.edu> | 2007-11-09 19:44:06 +0100 |
---|---|---|
committer | J. Bruce Fields <bfields@citi.umich.edu> | 2008-02-01 22:42:03 +0100 |
commit | 26808d3f10b1213bbb6e27d441be40e20ab84611 (patch) | |
tree | 38b2769d479a8cd44f2e242ef1f16b395fdf4997 /fs/nfsd/nfsctl.c | |
parent | knfsd: cleanup nfsd4 properly on module init failure (diff) | |
download | linux-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 'fs/nfsd/nfsctl.c')
-rw-r--r-- | fs/nfsd/nfsctl.c | 22 |
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; } |