From 6d4a314a8a00b52aed8b95c278c3051fa00d052c Mon Sep 17 00:00:00 2001 From: Trond Myklebust Date: Thu, 19 Oct 2006 23:28:38 -0700 Subject: [PATCH] --- yaml --- r: 39978 b: refs/heads/master c: eda3cef8dd2b83875affe82595db9d0c278879b2 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/nfs/direct.c | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 577277572c43..d03d4bcad2d9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b6dff26a08189932eeb0fa4261e09e733b0fc540 +refs/heads/master: eda3cef8dd2b83875affe82595db9d0c278879b2 diff --git a/trunk/fs/nfs/direct.c b/trunk/fs/nfs/direct.c index 9f7f8b9ea1e2..1e873fcab947 100644 --- a/trunk/fs/nfs/direct.c +++ b/trunk/fs/nfs/direct.c @@ -532,10 +532,12 @@ static void nfs_direct_write_result(struct rpc_task *task, void *calldata) spin_lock(&dreq->lock); - if (likely(status >= 0)) - dreq->count += data->res.count; - else - dreq->error = task->tk_status; + if (unlikely(status < 0)) { + dreq->error = status; + goto out_unlock; + } + + dreq->count += data->res.count; if (data->res.verf->committed != NFS_FILE_SYNC) { switch (dreq->flags) { @@ -550,7 +552,7 @@ static void nfs_direct_write_result(struct rpc_task *task, void *calldata) } } } - +out_unlock: spin_unlock(&dreq->lock); }