diff options
Diffstat (limited to 'fs/nfs/nfs4proc.c')
-rw-r--r-- | fs/nfs/nfs4proc.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index dc070819096a..d2cfa4f86537 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -3533,7 +3533,7 @@ static struct nfs4_unlockdata *nfs4_alloc_unlockdata(struct file_lock *fl, | |||
3533 | struct nfs4_unlockdata *p; | 3533 | struct nfs4_unlockdata *p; |
3534 | struct inode *inode = lsp->ls_state->inode; | 3534 | struct inode *inode = lsp->ls_state->inode; |
3535 | 3535 | ||
3536 | p = kmalloc(sizeof(*p), GFP_KERNEL); | 3536 | p = kzalloc(sizeof(*p), GFP_KERNEL); |
3537 | if (p == NULL) | 3537 | if (p == NULL) |
3538 | return NULL; | 3538 | return NULL; |
3539 | p->arg.fh = NFS_FH(inode); | 3539 | p->arg.fh = NFS_FH(inode); |
@@ -3564,6 +3564,8 @@ static void nfs4_locku_done(struct rpc_task *task, void *data) | |||
3564 | { | 3564 | { |
3565 | struct nfs4_unlockdata *calldata = data; | 3565 | struct nfs4_unlockdata *calldata = data; |
3566 | 3566 | ||
3567 | nfs4_sequence_done(calldata->server, &calldata->res.seq_res, | ||
3568 | task->tk_status); | ||
3567 | if (RPC_ASSASSINATED(task)) | 3569 | if (RPC_ASSASSINATED(task)) |
3568 | return; | 3570 | return; |
3569 | switch (task->tk_status) { | 3571 | switch (task->tk_status) { |
@@ -3582,6 +3584,8 @@ static void nfs4_locku_done(struct rpc_task *task, void *data) | |||
3582 | if (nfs4_async_handle_error(task, calldata->server, NULL) == -EAGAIN) | 3584 | if (nfs4_async_handle_error(task, calldata->server, NULL) == -EAGAIN) |
3583 | rpc_restart_call(task); | 3585 | rpc_restart_call(task); |
3584 | } | 3586 | } |
3587 | nfs4_sequence_free_slot(calldata->server->nfs_client, | ||
3588 | &calldata->res.seq_res); | ||
3585 | } | 3589 | } |
3586 | 3590 | ||
3587 | static void nfs4_locku_prepare(struct rpc_task *task, void *data) | 3591 | static void nfs4_locku_prepare(struct rpc_task *task, void *data) |
@@ -3596,6 +3600,10 @@ static void nfs4_locku_prepare(struct rpc_task *task, void *data) | |||
3596 | return; | 3600 | return; |
3597 | } | 3601 | } |
3598 | calldata->timestamp = jiffies; | 3602 | calldata->timestamp = jiffies; |
3603 | if (nfs4_setup_sequence(calldata->server->nfs_client, | ||
3604 | &calldata->arg.seq_args, | ||
3605 | &calldata->res.seq_res, 1, task)) | ||
3606 | return; | ||
3599 | rpc_call_start(task); | 3607 | rpc_call_start(task); |
3600 | } | 3608 | } |
3601 | 3609 | ||