]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
NFSD: Fix crash in nfsd4_read_release()
authorChuck Lever <chuck.lever@oracle.com>
Tue, 30 Sep 2025 14:05:20 +0000 (10:05 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Tue, 21 Oct 2025 15:03:19 +0000 (11:03 -0400)
When tracing is enabled, the trace_nfsd_read_done trace point
crashes during the pynfs read.testNoFh test.

Fixes: 15a8b55dbb1b ("nfsd: call op_release, even when op_func returns an error")
Cc: stable@vger.kernel.org
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs4proc.c

index e466cf52d7d7e1a78c3a469613a85ab3546d6d17..f9aeefc0da731f321af4f812d289951c31c9646e 100644 (file)
@@ -988,10 +988,11 @@ nfsd4_read(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
 static void
 nfsd4_read_release(union nfsd4_op_u *u)
 {
-       if (u->read.rd_nf)
+       if (u->read.rd_nf) {
+               trace_nfsd_read_done(u->read.rd_rqstp, u->read.rd_fhp,
+                                    u->read.rd_offset, u->read.rd_length);
                nfsd_file_put(u->read.rd_nf);
-       trace_nfsd_read_done(u->read.rd_rqstp, u->read.rd_fhp,
-                            u->read.rd_offset, u->read.rd_length);
+       }
 }
 
 static __be32