From: Alexey Khoroshilov Date: Sat, 25 Jun 2022 20:52:43 +0000 (+0300) Subject: NFSD: restore EINVAL error translation in nfsd_commit() X-Git-Tag: v5.19-rc5~4^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8a9ffb8c857c2c99403bd6483a5a005fed5c0773;p=thirdparty%2Fkernel%2Flinux.git NFSD: restore EINVAL error translation in nfsd_commit() commit 555dbf1a9aac ("nfsd: Replace use of rwsem with errseq_t") incidentally broke translation of -EINVAL to nfserr_notsupp. The patch restores that. Found by Linux Verification Center (linuxtesting.org) with SVACE. Signed-off-by: Alexey Khoroshilov Fixes: 555dbf1a9aac ("nfsd: Replace use of rwsem with errseq_t") Signed-off-by: Chuck Lever --- diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index 840e3af63a6f1..1b09d7293bc54 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c @@ -1173,6 +1173,7 @@ nfsd_commit(struct svc_rqst *rqstp, struct svc_fh *fhp, u64 offset, nfsd_copy_write_verifier(verf, nn); err2 = filemap_check_wb_err(nf->nf_file->f_mapping, since); + err = nfserrno(err2); break; case -EINVAL: err = nfserr_notsupp; @@ -1180,8 +1181,8 @@ nfsd_commit(struct svc_rqst *rqstp, struct svc_fh *fhp, u64 offset, default: nfsd_reset_write_verifier(nn); trace_nfsd_writeverf_reset(nn, rqstp, err2); + err = nfserrno(err2); } - err = nfserrno(err2); } else nfsd_copy_write_verifier(verf, nn);