nfsd: cleanup nfsd module initialization cleanup
authorJ. Bruce Fields <bfields@citi.umich.edu>
Fri, 9 Nov 2007 18:44:06 +0000 (13:44 -0500)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Fri, 1 Feb 2008 21:42:03 +0000 (16:42 -0500)
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>
fs/nfsd/nfsctl.c

index d8d50a7..ecf3779 100644 (file)
@@ -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;
 }