Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 432409ee authored by Neil Brown's avatar Neil Brown Committed by Linus Torvalds
Browse files

NFS: Fix for bug in handling of errors for O_DIRECT writes



Commit eda3cef8 ("NFS: Fix error
handling in nfs_direct_write_result()") ensured that if a WRITE returns
an error, then data->res.verf->committed is not tested (as it is not
initialised).

Then commit 60fa3f76 ("NFS: Fix two bugs
in the O_DIRECT write code") 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 <chuck.lever@oracle.com>
Signed-off-by: default avatarNeil Brown <neilb@suse.de>
Acked-by: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent a7aed1c2
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -549,13 +549,13 @@ static void nfs_direct_write_result(struct rpc_task *task, void *calldata)

	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;