summaryrefslogtreecommitdiffstats
path: root/fs/nfs
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@primarydata.com>2015-10-02 00:38:27 +0200
committerTrond Myklebust <trond.myklebust@primarydata.com>2015-10-02 21:43:07 +0200
commit8fa4592a14ebb3c22a21d846d1e4f65dab7d1a7c (patch)
treefacde536b292461c6db11d6c672cc4e592d02f58 /fs/nfs
parentNFS: Fix up page writeback accounting (diff)
downloadlinux-8fa4592a14ebb3c22a21d846d1e4f65dab7d1a7c.tar.xz
linux-8fa4592a14ebb3c22a21d846d1e4f65dab7d1a7c.zip
NFS: Fix a write performance regression
If all other conditions in nfs_can_extend_write() are met, and there are no locks, then we should be able to assume close-to-open semantics and the ability to extend our write to cover the whole page. With this patch, the xfstests generic/074 test completes in 242s instead of >1400s on my test rig. Fixes: bd61e0a9c852 ("locks: convert posix locks to file_lock_context") Cc: Jeff Layton <jlayton@primarydata.com> Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs/nfs')
-rw-r--r--fs/nfs/write.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index cfa47761a8ce..75ab7622e0cc 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -1223,7 +1223,7 @@ static int nfs_can_extend_write(struct file *file, struct page *page, struct ino
return 1;
if (!flctx || (list_empty_careful(&flctx->flc_flock) &&
list_empty_careful(&flctx->flc_posix)))
- return 0;
+ return 1;
/* Check to see if there are whole file write locks */
ret = 0;