]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
NFSD: Clean up nfsd_vfs_write()
authorChuck Lever <chuck.lever@oracle.com>
Tue, 28 Dec 2021 19:19:41 +0000 (14:19 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Apr 2024 14:18:59 +0000 (16:18 +0200)
[ 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>
fs/nfsd/vfs.c

index bc025fe5a595b4cb711d8afddde50207f4b51af3..98d370dcca867f817ff042a6074144e976f7a63f 100644 (file)
@@ -1009,22 +1009,11 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct nfsd_file *nf,
 
        iov_iter_kvec(&iter, WRITE, vec, vlen, *cnt);
        since = READ_ONCE(file->f_wb_err);
-       if (flags & RWF_SYNC) {
-               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)
-                       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 (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) {
                nfsd_reset_boot_verifier(net_generic(SVC_NET(rqstp),
                                         nfsd_net_id));