diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-11-11 22:18:03 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-12-06 10:46:25 -0500 |
commit | e6b3c4db6fbcd0d33720696f37790d6b8be12313 (patch) | |
tree | 24ad4a93b00ba7236b9a2d896fd6cb59a1dc2334 /fs/nfs/nfs4proc.c | |
parent | cc4dc59e5580d6c0de1685a25b74d32175f43434 (diff) |
Fix a second potential rpc_wakeup race...
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4proc.c')
-rw-r--r-- | fs/nfs/nfs4proc.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 8118036cc449..93ac05889cbc 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -636,7 +636,7 @@ static int _nfs4_proc_open_confirm(struct nfs4_opendata *data) | |||
636 | smp_wmb(); | 636 | smp_wmb(); |
637 | } else | 637 | } else |
638 | status = data->rpc_status; | 638 | status = data->rpc_status; |
639 | rpc_release_task(task); | 639 | rpc_put_task(task); |
640 | return status; | 640 | return status; |
641 | } | 641 | } |
642 | 642 | ||
@@ -742,7 +742,7 @@ static int _nfs4_proc_open(struct nfs4_opendata *data) | |||
742 | smp_wmb(); | 742 | smp_wmb(); |
743 | } else | 743 | } else |
744 | status = data->rpc_status; | 744 | status = data->rpc_status; |
745 | rpc_release_task(task); | 745 | rpc_put_task(task); |
746 | if (status != 0) | 746 | if (status != 0) |
747 | return status; | 747 | return status; |
748 | 748 | ||
@@ -3067,7 +3067,7 @@ static int _nfs4_proc_delegreturn(struct inode *inode, struct rpc_cred *cred, co | |||
3067 | if (status == 0) | 3067 | if (status == 0) |
3068 | nfs_post_op_update_inode(inode, &data->fattr); | 3068 | nfs_post_op_update_inode(inode, &data->fattr); |
3069 | } | 3069 | } |
3070 | rpc_release_task(task); | 3070 | rpc_put_task(task); |
3071 | return status; | 3071 | return status; |
3072 | } | 3072 | } |
3073 | 3073 | ||
@@ -3314,7 +3314,7 @@ static int nfs4_proc_unlck(struct nfs4_state *state, int cmd, struct file_lock * | |||
3314 | if (IS_ERR(task)) | 3314 | if (IS_ERR(task)) |
3315 | goto out; | 3315 | goto out; |
3316 | status = nfs4_wait_for_completion_rpc_task(task); | 3316 | status = nfs4_wait_for_completion_rpc_task(task); |
3317 | rpc_release_task(task); | 3317 | rpc_put_task(task); |
3318 | out: | 3318 | out: |
3319 | return status; | 3319 | return status; |
3320 | } | 3320 | } |
@@ -3430,7 +3430,7 @@ static void nfs4_lock_release(void *calldata) | |||
3430 | task = nfs4_do_unlck(&data->fl, data->ctx, data->lsp, | 3430 | task = nfs4_do_unlck(&data->fl, data->ctx, data->lsp, |
3431 | data->arg.lock_seqid); | 3431 | data->arg.lock_seqid); |
3432 | if (!IS_ERR(task)) | 3432 | if (!IS_ERR(task)) |
3433 | rpc_release_task(task); | 3433 | rpc_put_task(task); |
3434 | dprintk("%s: cancelling lock!\n", __FUNCTION__); | 3434 | dprintk("%s: cancelling lock!\n", __FUNCTION__); |
3435 | } else | 3435 | } else |
3436 | nfs_free_seqid(data->arg.lock_seqid); | 3436 | nfs_free_seqid(data->arg.lock_seqid); |
@@ -3472,7 +3472,7 @@ static int _nfs4_do_setlk(struct nfs4_state *state, int cmd, struct file_lock *f | |||
3472 | ret = -EAGAIN; | 3472 | ret = -EAGAIN; |
3473 | } else | 3473 | } else |
3474 | data->cancelled = 1; | 3474 | data->cancelled = 1; |
3475 | rpc_release_task(task); | 3475 | rpc_put_task(task); |
3476 | dprintk("%s: done, ret = %d!\n", __FUNCTION__, ret); | 3476 | dprintk("%s: done, ret = %d!\n", __FUNCTION__, ret); |
3477 | return ret; | 3477 | return ret; |
3478 | } | 3478 | } |