aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2006-11-11 22:18:03 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2006-12-06 10:46:25 -0500
commite6b3c4db6fbcd0d33720696f37790d6b8be12313 (patch)
tree24ad4a93b00ba7236b9a2d896fd6cb59a1dc2334 /fs/nfs
parentcc4dc59e5580d6c0de1685a25b74d32175f43434 (diff)
Fix a second potential rpc_wakeup race...
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs')
-rw-r--r--fs/nfs/nfs4proc.c12
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);
3318out: 3318out:
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}