NFS: fix the return value of nfs_file_fsync()
authorJ. R. Okajima <hooanon05@yahoo.co.jp>
Wed, 11 Aug 2010 17:10:16 +0000 (13:10 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 11 Aug 2010 17:10:16 +0000 (13:10 -0400)
By the commit af7fa16 2010-08-03 NFS: Fix up the fsync code
close(2) became returning the non-zero value even if it went well.
nfs_file_fsync() should return 0 when "status" is positive.

Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/file.c

index 2d141a7..eb51bd6 100644 (file)
@@ -323,7 +323,7 @@ nfs_file_fsync(struct file *file, int datasync)
        have_error |= test_bit(NFS_CONTEXT_ERROR_WRITE, &ctx->flags);
        if (have_error)
                ret = xchg(&ctx->error, 0);
-       if (!ret)
+       if (!ret && status < 0)
                ret = status;
        return ret;
 }