diff options
| author | Jeff Layton <jlayton@kernel.org> | 2026-07-17 07:08:53 -0400 |
|---|---|---|
| committer | Chuck Lever <cel@kernel.org> | 2026-08-10 09:54:35 -0400 |
| commit | f1775ed34ed3ecf1289588574b892aa9584e6ef3 (patch) | |
| tree | 6f502266d16a6ec84ca4460847c1c4459c16cb1f /include | |
| parent | 284a474e947afe1d48bbd820c5327a911e685332 (diff) | |
| download | linux-f1775ed34ed3ecf1289588574b892aa9584e6ef3.tar.gz linux-f1775ed34ed3ecf1289588574b892aa9584e6ef3.zip | |
sunrpc: add per-netns per-procedure call counts to svc_stat
The existing per-procedure call counts live in global
svc_version->vs_count[] arrays which are not network-namespace-aware.
Add per-netns equivalents in struct svc_stat so the upcoming netlink
stats interface can return namespace-scoped statistics.
Add a vs_count pointer array to struct svc_stat, along with
svc_stat_alloc_counts() and svc_stat_free_counts() helpers to manage
per-version percpu call count arrays.
Increment the per-net counter alongside the global one in
svc_generic_init_request(). Call the alloc/free helpers from
nfsd_net_init() and nfsd_net_exit().
Assisted-by: LLM
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Link: https://patch.msgid.link/20260717-exportd-netlink-v7-1-b7ce17b83b60@kernel.org
Signed-off-by: Chuck Lever <cel@kernel.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/sunrpc/stats.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/sunrpc/stats.h b/include/linux/sunrpc/stats.h index 3ce1550d1beb..087ade905e29 100644 --- a/include/linux/sunrpc/stats.h +++ b/include/linux/sunrpc/stats.h @@ -37,9 +37,15 @@ struct svc_stat { rpcbadfmt, rpcbadauth, rpcbadclnt; + + /* Per-version per-procedure call counts (per-cpu, per-netns) */ + unsigned long __percpu **vs_count; }; struct net; +int svc_stat_alloc_counts(struct svc_stat *statp); +void svc_stat_free_counts(struct svc_stat *statp); + #ifdef CONFIG_PROC_FS int rpc_proc_init(struct net *); void rpc_proc_exit(struct net *); |
