|
@@ -7012,23 +7012,24 @@ nfs4_state_start(void)
|
|
|
|
|
|
ret = set_callback_cred();
|
|
|
if (ret)
|
|
|
- return -ENOMEM;
|
|
|
+ return ret;
|
|
|
+
|
|
|
laundry_wq = alloc_workqueue("%s", WQ_UNBOUND, 0, "nfsd4");
|
|
|
if (laundry_wq == NULL) {
|
|
|
ret = -ENOMEM;
|
|
|
- goto out_recovery;
|
|
|
+ goto out_cleanup_cred;
|
|
|
}
|
|
|
ret = nfsd4_create_callback_queue();
|
|
|
if (ret)
|
|
|
goto out_free_laundry;
|
|
|
|
|
|
set_max_delegations();
|
|
|
-
|
|
|
return 0;
|
|
|
|
|
|
out_free_laundry:
|
|
|
destroy_workqueue(laundry_wq);
|
|
|
-out_recovery:
|
|
|
+out_cleanup_cred:
|
|
|
+ cleanup_callback_cred();
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -7086,6 +7087,7 @@ nfs4_state_shutdown(void)
|
|
|
{
|
|
|
destroy_workqueue(laundry_wq);
|
|
|
nfsd4_destroy_callback_queue();
|
|
|
+ cleanup_callback_cred();
|
|
|
}
|
|
|
|
|
|
static void
|