From: Neil Brown <[EMAIL PROTECTED]> commit eda3cef8dd2b838 ensured that if a WRITE returns an error, then data->res.verf->committed is not tested (as it is not initialised).
commit 60fa3f769f inadvertently reverted this while fixing other problems. So move the test so that we never examine ->committed in an error case, and fix a speeling error while we are there. Cc: Chuck Lever <[EMAIL PROTECTED]> Signed-off-by: Neil Brown <[EMAIL PROTECTED]> Acked-by: Chuck Lever <[EMAIL PROTECTED]> Signed-off-by: Trond Myklebust <[EMAIL PROTECTED]> --- Note: only compile tested - I haven't tried triggering the bug yet. NeilBrown ### Diffstat output ./fs/nfs/direct.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff .prev/fs/nfs/direct.c ./fs/nfs/direct.c --- .prev/fs/nfs/direct.c 2007-10-23 12:31:29.000000000 +1000 +++ ./fs/nfs/direct.c 2007-10-23 12:32:07.000000000 +1000 @@ -549,13 +549,13 @@ static void nfs_direct_write_result(stru spin_lock(&dreq->lock); - if (unlikely(dreq->error != 0)) - goto out_unlock; if (unlikely(status < 0)) { - /* An error has occured, so we should not commit */ + /* An error has occurred, so we should not commit */ dreq->flags = 0; dreq->error = status; } + if (unlikely(dreq->error != 0)) + goto out_unlock; dreq->count += data->res.count; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/