Commit b1a28f2e authored by Trond Myklebust's avatar Trond Myklebust

NFS: nfs_async_write_reschedule_io must not recurse into the writeback code

It is not safe to call filemap_fdatawrite_range() from
nfs_async_write_reschedule_io(), since we're often calling from a page
reclaim context. Just let fsync() redrive the writeback for us.
Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent 72691a26
...@@ -1444,8 +1444,6 @@ static void nfs_async_write_error(struct list_head *head, int error) ...@@ -1444,8 +1444,6 @@ static void nfs_async_write_error(struct list_head *head, int error)
static void nfs_async_write_reschedule_io(struct nfs_pgio_header *hdr) static void nfs_async_write_reschedule_io(struct nfs_pgio_header *hdr)
{ {
nfs_async_write_error(&hdr->pages, 0); nfs_async_write_error(&hdr->pages, 0);
filemap_fdatawrite_range(hdr->inode->i_mapping, hdr->args.offset,
hdr->args.offset + hdr->args.count - 1);
} }
static const struct nfs_pgio_completion_ops nfs_async_write_completion_ops = { static const struct nfs_pgio_completion_ops nfs_async_write_completion_ops = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment