diff options
author | Trond Myklebust <trondmy@gmail.com> | 2020-01-06 21:40:31 +0300 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2020-01-23 00:25:40 +0300 |
commit | 7bf94c6ba9fb291bd28fac3228553cb305bfc92a (patch) | |
tree | 8c8de0c138f5773564d4ee61fabe5d7c14a93623 /fs/nfsd/vfs.c | |
parent | 5011af4c698a95b4dc4e374b1ce3acd122a9170f (diff) | |
download | linux-7bf94c6ba9fb291bd28fac3228553cb305bfc92a.tar.xz |
nfsd: Update the boot verifier on stable writes too.
We don't know if the error returned by the fsync() call is
exclusive to the data written by the stable write, so play it
safe.
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/vfs.c')
-rw-r--r-- | fs/nfsd/vfs.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index 4652854f3dd5..0a048dfb68ec 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c @@ -994,8 +994,11 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct nfsd_file *nf, host_err = vfs_iter_write(file, &iter, &pos, flags); up_read(&nf->nf_rwsem); } - if (host_err < 0) + if (host_err < 0) { + nfsd_reset_boot_verifier(net_generic(SVC_NET(rqstp), + nfsd_net_id)); goto out_nfserr; + } *cnt = host_err; nfsdstats.io_write += *cnt; fsnotify_modify(file); |