int retval;
        printk(KERN_INFO "Installing knfsd (copyright (C) 1996 okir@monad.swb.de).\n");
 
-       retval = register_pernet_subsys(&nfsd_net_ops);
-       if (retval < 0)
-               return retval;
        retval = register_cld_notifier();
        if (retval)
-               goto out_unregister_pernet;
+               return retval;
        retval = nfsd4_init_slabs();
        if (retval)
                goto out_unregister_notifier;
                goto out_free_lockd;
        retval = register_filesystem(&nfsd_fs_type);
        if (retval)
+               goto out_free_exports;
+       retval = register_pernet_subsys(&nfsd_net_ops);
+       if (retval < 0)
                goto out_free_all;
        return 0;
 out_free_all:
+       unregister_pernet_subsys(&nfsd_net_ops);
+out_free_exports:
        remove_proc_entry("fs/nfs/exports", NULL);
        remove_proc_entry("fs/nfs", NULL);
 out_free_lockd:
        nfsd4_free_slabs();
 out_unregister_notifier:
        unregister_cld_notifier();
-out_unregister_pernet:
-       unregister_pernet_subsys(&nfsd_net_ops);
        return retval;
 }
 
 static void __exit exit_nfsd(void)
 {
+       unregister_pernet_subsys(&nfsd_net_ops);
        nfsd_drc_slab_free();
        remove_proc_entry("fs/nfs/exports", NULL);
        remove_proc_entry("fs/nfs", NULL);
        nfsd4_exit_pnfs();
        unregister_filesystem(&nfsd_fs_type);
        unregister_cld_notifier();
-       unregister_pernet_subsys(&nfsd_net_ops);
 }
 
 MODULE_AUTHOR("Olaf Kirch <okir@monad.swb.de>");