diff mbox series

sunrpc: use the struct net as the svc proc private

Message ID 20240526000122.386951-1-cel@kernel.org (mailing list archive)
State New
Headers show
Series sunrpc: use the struct net as the svc proc private | expand

Commit Message

Chuck Lever May 26, 2024, 12:01 a.m. UTC
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.

Comments

Jaroslav Pulchart May 27, 2024, 6:56 a.m. UTC | #1
>
> 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.
Chris Rankin May 27, 2024, 10:46 a.m. UTC | #2
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 mbox series

Patch

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);