Message ID | 20240526000122.386951-1-cel@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | sunrpc: use the struct net as the svc proc private | expand |
> > From: Josef Bacik <josef@toxicpanda.com> > > [ Upstream commit 418b9687dece5bd763c09b5c27a801a7e3387be9 ] > > nfsd is the only thing using this helper, and it doesn't use the private > currently. When we switch to per-network namespace stats we will need > the struct net * in order to get to the nfsd_net. Use the net as the > proc private so we can utilize this when we make the switch over. > > Signed-off-by: Josef Bacik <josef@toxicpanda.com> > Reviewed-by: Jeff Layton <jlayton@kernel.org> > Signed-off-by: Chuck Lever <chuck.lever@oracle.com> > --- > net/sunrpc/stats.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > > I investigated the crash reported by Chris and Jaroslav. This patch > is missing from v6.8.y. > > > diff --git a/net/sunrpc/stats.c b/net/sunrpc/stats.c > index 65fc1297c6df..383860cb1d5b 100644 > --- a/net/sunrpc/stats.c > +++ b/net/sunrpc/stats.c > @@ -314,7 +314,7 @@ EXPORT_SYMBOL_GPL(rpc_proc_unregister); > struct proc_dir_entry * > svc_proc_register(struct net *net, struct svc_stat *statp, const struct proc_ops *proc_ops) > { > - return do_register(net, statp->program->pg_name, statp, proc_ops); > + return do_register(net, statp->program->pg_name, net, proc_ops); > } > EXPORT_SYMBOL_GPL(svc_proc_register); > > -- > 2.45.1 > I applied a mentioned commit 418b9687dece5bd763c09b5c27a801a7e3387be9 as a patch for 6.8.y and the system did not get stuck by the "nfsstat" command.
Hi, This patch also fixes the periodic oops from my kernel. (I suspect Fedora 40 is invoking nfsstat or similar in the background every 5 minutes.) Thanks, Chris On Mon, 27 May 2024 at 07:57, Jaroslav Pulchart <jaroslav.pulchart@gooddata.com> wrote: > > > > > From: Josef Bacik <josef@toxicpanda.com> > > > > [ Upstream commit 418b9687dece5bd763c09b5c27a801a7e3387be9 ] > > > > nfsd is the only thing using this helper, and it doesn't use the private > > currently. When we switch to per-network namespace stats we will need > > the struct net * in order to get to the nfsd_net. Use the net as the > > proc private so we can utilize this when we make the switch over. > > > > Signed-off-by: Josef Bacik <josef@toxicpanda.com> > > Reviewed-by: Jeff Layton <jlayton@kernel.org> > > Signed-off-by: Chuck Lever <chuck.lever@oracle.com> > > --- > > net/sunrpc/stats.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > I investigated the crash reported by Chris and Jaroslav. This patch > > is missing from v6.8.y. > > > > > > diff --git a/net/sunrpc/stats.c b/net/sunrpc/stats.c > > index 65fc1297c6df..383860cb1d5b 100644 > > --- a/net/sunrpc/stats.c > > +++ b/net/sunrpc/stats.c > > @@ -314,7 +314,7 @@ EXPORT_SYMBOL_GPL(rpc_proc_unregister); > > struct proc_dir_entry * > > svc_proc_register(struct net *net, struct svc_stat *statp, const struct proc_ops *proc_ops) > > { > > - return do_register(net, statp->program->pg_name, statp, proc_ops); > > + return do_register(net, statp->program->pg_name, net, proc_ops); > > } > > EXPORT_SYMBOL_GPL(svc_proc_register); > > > > -- > > 2.45.1 > > > > I applied a mentioned commit 418b9687dece5bd763c09b5c27a801a7e3387be9 > as a patch for 6.8.y and the system did not get stuck by the "nfsstat" > command.
diff --git a/net/sunrpc/stats.c b/net/sunrpc/stats.c index 65fc1297c6df..383860cb1d5b 100644 --- a/net/sunrpc/stats.c +++ b/net/sunrpc/stats.c @@ -314,7 +314,7 @@ EXPORT_SYMBOL_GPL(rpc_proc_unregister); struct proc_dir_entry * svc_proc_register(struct net *net, struct svc_stat *statp, const struct proc_ops *proc_ops) { - return do_register(net, statp->program->pg_name, statp, proc_ops); + return do_register(net, statp->program->pg_name, net, proc_ops); } EXPORT_SYMBOL_GPL(svc_proc_register);