diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2011-03-21 20:37:01 +0100 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2011-03-22 02:09:24 +0100 |
commit | b8413f98f997bb3ed7327e6d7117e7e91ce010c3 (patch) | |
tree | 9921bcb0dc978d2c7fe549e81080c0539fef8c71 /fs/nfs/sysctl.c | |
parent | FS: Use stable writes when not doing a bulk flush (diff) | |
download | linux-b8413f98f997bb3ed7327e6d7117e7e91ce010c3.tar.xz linux-b8413f98f997bb3ed7327e6d7117e7e91ce010c3.zip |
NFS: Fix a hang/infinite loop in nfs_wb_page()
When one of the two waits in nfs_commit_inode() is interrupted, it
returns a non-negative value, which causes nfs_wb_page() to think
that the operation was successful causing it to busy-loop rather
than exiting.
It also causes nfs_file_fsync() to incorrectly report the file as
being successfully committed to disk.
This patch fixes both problems by ensuring that we return an error
if the attempts to wait fail.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: stable@kernel.org
Diffstat (limited to 'fs/nfs/sysctl.c')
0 files changed, 0 insertions, 0 deletions