On Thu, Jan 25, 2024 at 02:53:15PM -0500, Josef Bacik wrote: > We want to be able to have our rpc stats handled in a per network > namespace manner, so add an option to rpc_create_args to specify a > different rpc_stats struct instead of using the one on the rpc_program. > > Signed-off-by: Josef Bacik <josef@xxxxxxxxxxxxxx> > --- > fs/nfs/client.c | 2 +- > include/linux/sunrpc/clnt.h | 1 + > net/sunrpc/clnt.c | 2 +- > 3 files changed, 3 insertions(+), 2 deletions(-) I know it isn't obvious to an outside observer, but the maintainership of the NFS server and client are separate. NFS client patches go To: Trond and Anna, Cc: linux-nfs NFS server patches go To: Jeff and Chuck, Cc: linux-nfs and you can Cc: server patches on the reviewers listed in MAINTAINERS too if you like. > diff --git a/fs/nfs/client.c b/fs/nfs/client.c > index 44eca51b2808..590be14f182f 100644 > --- a/fs/nfs/client.c > +++ b/fs/nfs/client.c > @@ -73,7 +73,7 @@ const struct rpc_program nfs_program = { > .number = NFS_PROGRAM, > .nrvers = ARRAY_SIZE(nfs_version), > .version = nfs_version, > - .stats = &nfs_rpcstat, > + .stats = &nfs_rpcstat, > .pipe_dir_name = NFS_PIPE_DIRNAME, > }; > > diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h > index 5e9d1469c6fa..5321585c778f 100644 > --- a/include/linux/sunrpc/clnt.h > +++ b/include/linux/sunrpc/clnt.h > @@ -139,6 +139,7 @@ struct rpc_create_args { > const char *servername; > const char *nodename; > const struct rpc_program *program; > + struct rpc_stat *stats; > u32 prognumber; /* overrides program->number */ > u32 version; > rpc_authflavor_t authflavor; > diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c > index cda0935a68c9..bc8c209fc0c7 100644 > --- a/net/sunrpc/clnt.c > +++ b/net/sunrpc/clnt.c > @@ -405,7 +405,7 @@ static struct rpc_clnt * rpc_new_client(const struct rpc_create_args *args, > clnt->cl_maxproc = version->nrprocs; > clnt->cl_prog = args->prognumber ? : program->number; > clnt->cl_vers = version->number; > - clnt->cl_stats = program->stats; > + clnt->cl_stats = args->stats ? : program->stats; > clnt->cl_metrics = rpc_alloc_iostats(clnt); > rpc_init_pipe_dir_head(&clnt->cl_pipedir_objects); > err = -ENOMEM; > -- > 2.43.0 > > -- Chuck Lever