NFS: Fix an Oops when truncating a file
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 3 Feb 2010 13:27:22 +0000 (08:27 -0500)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 3 Feb 2010 13:27:22 +0000 (08:27 -0500)
commit9f557cd8073104b39528794d44e129331ded649f
tree104a4146a767f3e42b474cdbbf056130b35d22b1
parenta2c0b9e291208f65221a0ad8a0c80a377707d480
NFS: Fix an Oops when truncating a file

The VM/VFS does not allow mapping->a_ops->invalidatepage() to fail.
Unfortunately, nfs_wb_page_cancel() may fail if a fatal signal occurs.
Since the NFS code assumes that the page stays mapped for as long as the
writeback is active, we can end up Oopsing (among other things).

The only safe fix here is to convert nfs_wait_on_request(), so as to make
it uninterruptible (as is already the case with wait_on_page_writeback()).

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: stable@kernel.org
fs/nfs/pagelist.c