diff options
author | 2020-01-06 13:40:29 -0500 | |
---|---|---|
committer | 2020-01-22 16:25:40 -0500 | |
commit | 16f8f894108270fd99667f06bae6ebcdd0f4e4bf (patch) | |
tree | ab454defbb02943b85263a720798b575b46b1ca2 /fs/nfsd/vfs.c | |
parent | nfsd: Fix a soft lockup race in nfsd_file_mark_find_or_create() (diff) | |
download | linux-16f8f894108270fd99667f06bae6ebcdd0f4e4bf.tar.gz linux-16f8f894108270fd99667f06bae6ebcdd0f4e4bf.tar.bz2 linux-16f8f894108270fd99667f06bae6ebcdd0f4e4bf.zip |
nfsd: Allow nfsd_vfs_write() to take the nfsd_file as an argument
Needed in order to fix stable writes.
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, 3 insertions, 2 deletions
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index 3aeffb26fca5..e1ffefab2552 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c @@ -947,10 +947,11 @@ static int wait_for_concurrent_writes(struct file *file) } __be32 -nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file, +nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct nfsd_file *nf, loff_t offset, struct kvec *vec, int vlen, unsigned long *cnt, int stable) { + struct file *file = nf->nf_file; struct svc_export *exp; struct iov_iter iter; __be32 nfserr; @@ -1057,7 +1058,7 @@ nfsd_write(struct svc_rqst *rqstp, struct svc_fh *fhp, loff_t offset, if (err) goto out; - err = nfsd_vfs_write(rqstp, fhp, nf->nf_file, offset, vec, + err = nfsd_vfs_write(rqstp, fhp, nf, offset, vec, vlen, cnt, stable); nfsd_file_put(nf); out: |