From: Chuck Lever <chuck.lever@oracle.com>
Date: Tue, 28 Dec 2021 14:26:03 -0500
Subject: [PATCH] NFSD: De-duplicate net_generic(nf->nf_net, nfsd_net_id)
Git-commit: 2c445a0e72cb1fbfbdb7f9473c53556ee27c1d90
Patch-mainline: v5.17
References: git-fixes
Since this pointer is used repeatedly, move it to a stack variable.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Acked-by: NeilBrown <neilb@suse.com>
---
fs/nfsd/vfs.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
--- a/fs/nfsd/vfs.c
+++ b/fs/nfsd/vfs.c
@@ -1143,6 +1143,7 @@ __be32
nfsd_commit(struct svc_rqst *rqstp, struct svc_fh *fhp,
loff_t offset, unsigned long count, __be32 *verf)
{
+ struct nfsd_net *nn;
struct nfsd_file *nf;
loff_t end = LLONG_MAX;
__be32 err = nfserr_inval;
@@ -1159,6 +1160,7 @@ nfsd_commit(struct svc_rqst *rqstp, stru
NFSD_MAY_WRITE|NFSD_MAY_NOT_BREAK_LEASE, &nf);
if (err)
goto out;
+ nn = net_generic(nf->nf_net, nfsd_net_id);
if (EX_ISSYNC(fhp->fh_export)) {
errseq_t since = READ_ONCE(nf->nf_file->f_wb_err);
int err2;
@@ -1166,8 +1168,7 @@ nfsd_commit(struct svc_rqst *rqstp, stru
err2 = vfs_fsync_range(nf->nf_file, offset, end, 0);
switch (err2) {
case 0:
- nfsd_copy_boot_verifier(verf, net_generic(nf->nf_net,
- nfsd_net_id));
+ nfsd_copy_boot_verifier(verf, nn);
err2 = filemap_check_wb_err(nf->nf_file->f_mapping,
since);
break;
@@ -1175,13 +1176,11 @@ nfsd_commit(struct svc_rqst *rqstp, stru
err = nfserr_notsupp;
break;
default:
- nfsd_reset_boot_verifier(net_generic(nf->nf_net,
- nfsd_net_id));
+ nfsd_reset_boot_verifier(nn);
}
err = nfserrno(err2);
} else
- nfsd_copy_boot_verifier(verf, net_generic(nf->nf_net,
- nfsd_net_id));
+ nfsd_copy_boot_verifier(verf, nn);
nfsd_file_put(nf);
out: