NFSD: Clean up nfsd_vfs_write()
[ Upstream commit 33388b3aefefd4d83764dab8038cb54068161a44 ] The RWF_SYNC and !RWF_SYNC arms are now exactly alike except that the RWF_SYNC arm resets the boot verifier twice in a row. Fix that redundancy and de-duplicate the code. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
30282a70aa
commit
aa9ea9ec29
@@ -1023,22 +1023,11 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct nfsd_file *nf,
|
|||||||
|
|
||||||
iov_iter_kvec(&iter, WRITE, vec, vlen, *cnt);
|
iov_iter_kvec(&iter, WRITE, vec, vlen, *cnt);
|
||||||
since = READ_ONCE(file->f_wb_err);
|
since = READ_ONCE(file->f_wb_err);
|
||||||
if (flags & RWF_SYNC) {
|
|
||||||
if (verf)
|
if (verf)
|
||||||
nfsd_copy_boot_verifier(verf,
|
nfsd_copy_boot_verifier(verf,
|
||||||
net_generic(SVC_NET(rqstp),
|
net_generic(SVC_NET(rqstp),
|
||||||
nfsd_net_id));
|
nfsd_net_id));
|
||||||
host_err = vfs_iter_write(file, &iter, &pos, flags);
|
host_err = vfs_iter_write(file, &iter, &pos, flags);
|
||||||
if (host_err < 0)
|
|
||||||
nfsd_reset_boot_verifier(net_generic(SVC_NET(rqstp),
|
|
||||||
nfsd_net_id));
|
|
||||||
} else {
|
|
||||||
if (verf)
|
|
||||||
nfsd_copy_boot_verifier(verf,
|
|
||||||
net_generic(SVC_NET(rqstp),
|
|
||||||
nfsd_net_id));
|
|
||||||
host_err = vfs_iter_write(file, &iter, &pos, flags);
|
|
||||||
}
|
|
||||||
if (host_err < 0) {
|
if (host_err < 0) {
|
||||||
nfsd_reset_boot_verifier(net_generic(SVC_NET(rqstp),
|
nfsd_reset_boot_verifier(net_generic(SVC_NET(rqstp),
|
||||||
nfsd_net_id));
|
nfsd_net_id));
|
||||||
|
Reference in New Issue
Block a user