NFS: Fix commit policy for non-blocking calls to nfs_write_inode()
authorTrond Myklebust <trond.myklebust@primarydata.com>
Tue, 20 Jun 2017 23:35:38 +0000 (19:35 -0400)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Thu, 13 Jul 2017 19:58:05 +0000 (15:58 -0400)
Now that the writes will schedule a commit on their own, we don't
need nfs_write_inode() to schedule one if there are outstanding
writes, and we're being called in non-blocking mode.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
fs/nfs/write.c

index 051197cb9195fcfc7cf845a89a7582c8c93e3795..b1af5dee5e0a87fdbd370bfdd9277d331aa4c721 100644 (file)
@@ -1941,7 +1941,7 @@ int nfs_write_inode(struct inode *inode, struct writeback_control *wbc)
                /* Don't commit yet if this is a non-blocking flush and there
                 * are a lot of outstanding writes for this mapping.
                 */
-               if (nfsi->commit_info.ncommit <= (nfsi->nrequests >> 1))
+               if (mapping_tagged(inode->i_mapping, PAGECACHE_TAG_WRITEBACK))
                        goto out_mark_dirty;
 
                /* don't wait for the COMMIT response */