git: 472a735d09eb - stable/14 - nfs_nfsdsocket.c: Fix "nfsstats -d" for ERELOOKUP
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 15 Oct 2026 01:27:05 UTC
The branch stable/14 has been updated by rmacklem:
URL: https://cgit.FreeBSD.org/src/commit/?id=472a735d09eb5504d36703b47fbd28afc5b126bb
commit 472a735d09eb5504d36703b47fbd28afc5b126bb
Author: Bren <BlueSkiesApplePies+FreeBUG@pm.me>
AuthorDate: 2026-10-08 19:03:51 +0000
Commit: Rick Macklem <rmacklem@FreeBSD.org>
CommitDate: 2026-10-15 01:25:02 +0000
nfs_nfsdsocket.c: Fix "nfsstats -d" for ERELOOKUP
When ERELOOKLUP is returned by a file operation
(always vop_lookup?) the operation is retried without
doing nfsrv_statsend().
This patch fixes this problem,
The only effect of the bug was bogus "nfsstat -d"
output.
PR: 298534
(cherry picked from commit 9a237074d380233e93a17ddee6b155cc2f90ee96)
---
sys/fs/nfsserver/nfs_nfsdsocket.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/sys/fs/nfsserver/nfs_nfsdsocket.c b/sys/fs/nfsserver/nfs_nfsdsocket.c
index 09ed4c407c13..09384ad6e5bd 100644
--- a/sys/fs/nfsserver/nfs_nfsdsocket.c
+++ b/sys/fs/nfsserver/nfs_nfsdsocket.c
@@ -652,6 +652,8 @@ tryagain:
vn_finished_write(mp);
if (error == 0 && nd->nd_repstat == ERELOOKUP) {
+ nfsrvd_statend(nfsv3to4op[nd->nd_procnum], /*bytes*/ 0,
+ /*now*/ NULL, /*then*/ &start_time);
/*
* Roll back to the beginning of the RPC request
* arguments.
@@ -1353,6 +1355,11 @@ tryagain:
}
if (nd->nd_repstat == ERELOOKUP) {
+ if (statsinprog != 0) {
+ nfsrvd_statend(op, /*bytes*/ 0, /*now*/ NULL,
+ /*then*/ &start_time);
+ statsinprog = 0;
+ }
/*
* Roll back to the beginning of the operation
* arguments.