summaryrefslogtreecommitdiffstats
path: root/fs/nfs/write.c
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@hammerspace.com>2020-03-21 14:27:46 +0100
committerTrond Myklebust <trond.myklebust@hammerspace.com>2020-03-27 21:34:34 +0100
commit1f28476dcb98797e838a0c1dd6eae2fda213dd81 (patch)
tree52f33d1b249ce67888ead280432aac27d092fc81 /fs/nfs/write.c
parentNFS: commit errors should be fatal (diff)
downloadlinux-1f28476dcb98797e838a0c1dd6eae2fda213dd81.tar.xz
linux-1f28476dcb98797e838a0c1dd6eae2fda213dd81.zip
NFS: Fix O_DIRECT commit verifier handling
Instead of trying to save the commit verifiers and checking them against previous writes, adopt the same strategy as for buffered writes, of just checking the verifiers at commit time. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Diffstat (limited to 'fs/nfs/write.c')
-rw-r--r--fs/nfs/write.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index 1f8108f5a041..03b7f64f7c4f 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -1874,8 +1874,7 @@ static void nfs_commit_release_pages(struct nfs_commit_data *data)
/* Okay, COMMIT succeeded, apparently. Check the verifier
* returned by the server against all stored verfs. */
- if (verf->committed > NFS_UNSTABLE &&
- !nfs_write_verifier_cmp(&req->wb_verf, &verf->verifier)) {
+ if (nfs_write_match_verf(verf, req)) {
/* We have a match */
if (req->wb_page)
nfs_inode_remove_request(req);