NFS: Fix a hang/infinite loop in nfs_wb_page()
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Mon, 21 Mar 2011 19:37:01 +0000 (15:37 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sun, 27 Mar 2011 18:36:36 +0000 (11:36 -0700)
commit172af058996db9c3dc6230d966295ed338dc3538
tree6e1d9d9d11e72d252e07d8c69721f98f5478b955
parent144a4ea712041e818df28a2bea81431143164da8
NFS: Fix a hang/infinite loop in nfs_wb_page()

commit b8413f98f997bb3ed7327e6d7117e7e91ce010c3 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/nfs/write.c