diff options
Diffstat (limited to 'fs/nfs/nfs4state.c')
-rw-r--r-- | fs/nfs/nfs4state.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index a2ef02824aa8..7775435ea7a5 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c | |||
@@ -292,8 +292,10 @@ struct nfs4_state_owner *nfs4_get_state_owner(struct nfs_server *server, struct | |||
292 | spin_unlock(&clp->cl_lock); | 292 | spin_unlock(&clp->cl_lock); |
293 | if (sp == new) | 293 | if (sp == new) |
294 | get_rpccred(cred); | 294 | get_rpccred(cred); |
295 | else | 295 | else { |
296 | rpc_destroy_wait_queue(&new->so_sequence.wait); | ||
296 | kfree(new); | 297 | kfree(new); |
298 | } | ||
297 | return sp; | 299 | return sp; |
298 | } | 300 | } |
299 | 301 | ||
@@ -310,6 +312,7 @@ void nfs4_put_state_owner(struct nfs4_state_owner *sp) | |||
310 | return; | 312 | return; |
311 | nfs4_remove_state_owner(clp, sp); | 313 | nfs4_remove_state_owner(clp, sp); |
312 | spin_unlock(&clp->cl_lock); | 314 | spin_unlock(&clp->cl_lock); |
315 | rpc_destroy_wait_queue(&sp->so_sequence.wait); | ||
313 | put_rpccred(cred); | 316 | put_rpccred(cred); |
314 | kfree(sp); | 317 | kfree(sp); |
315 | } | 318 | } |
@@ -529,6 +532,7 @@ static void nfs4_free_lock_state(struct nfs4_lock_state *lsp) | |||
529 | spin_lock(&clp->cl_lock); | 532 | spin_lock(&clp->cl_lock); |
530 | nfs_free_unique_id(&clp->cl_lockowner_id, &lsp->ls_id); | 533 | nfs_free_unique_id(&clp->cl_lockowner_id, &lsp->ls_id); |
531 | spin_unlock(&clp->cl_lock); | 534 | spin_unlock(&clp->cl_lock); |
535 | rpc_destroy_wait_queue(&lsp->ls_sequence.wait); | ||
532 | kfree(lsp); | 536 | kfree(lsp); |
533 | } | 537 | } |
534 | 538 | ||