diff options
Diffstat (limited to 'fs/nfsd')
-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) | |||
694 | entry->proc_fops = &exports_operations; | 694 | entry->proc_fops = &exports_operations; |
695 | } | 695 | } |
696 | retval = register_filesystem(&nfsd_fs_type); | 696 | retval = register_filesystem(&nfsd_fs_type); |
697 | if (retval) { | 697 | if (retval) |
698 | nfsd_idmap_shutdown(); | 698 | goto out_free_all; |
699 | nfsd_export_shutdown(); | 699 | return 0; |
700 | nfsd_cache_shutdown(); | 700 | out_free_all: |
701 | remove_proc_entry("fs/nfs/exports", NULL); | 701 | nfsd_idmap_shutdown(); |
702 | remove_proc_entry("fs/nfs", NULL); | 702 | nfsd_export_shutdown(); |
703 | nfsd_stat_shutdown(); | 703 | nfsd_cache_shutdown(); |
704 | nfsd_lockd_shutdown(); | 704 | remove_proc_entry("fs/nfs/exports", NULL); |
705 | nfsd4_free_slabs(); | 705 | remove_proc_entry("fs/nfs", NULL); |
706 | } | 706 | nfsd_stat_shutdown(); |
707 | nfsd_lockd_shutdown(); | ||
708 | nfsd4_free_slabs(); | ||
707 | return retval; | 709 | return retval; |
708 | } | 710 | } |
709 | 711 | ||