diff options
author | Trond Myklebust <trond.myklebust@primarydata.com> | 2015-10-01 18:38:27 -0400 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2015-10-02 15:43:07 -0400 |
commit | 8fa4592a14ebb3c22a21d846d1e4f65dab7d1a7c (patch) | |
tree | facde536b292461c6db11d6c672cc4e592d02f58 /fs | |
parent | 40f90271a835478e5910dc84f32b8e25885419a4 (diff) | |
download | linux-8fa4592a14ebb3c22a21d846d1e4f65dab7d1a7c.tar.gz linux-8fa4592a14ebb3c22a21d846d1e4f65dab7d1a7c.tar.bz2 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')
-rw-r--r-- | fs/nfs/write.c | 2 |
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; |