linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH] Check validity of cl_rpcclient in nfs_server_list_show
@ 2011-10-20 19:03 Myklebust, Trond
  0 siblings, 0 replies; 8+ messages in thread
From: Myklebust, Trond @ 2011-10-20 19:03 UTC (permalink / raw)
  To: Malahal Naineni; +Cc: linux-nfs

Sorry about that. I'll try to fix it later, but I'm on various planes for most of today so I might not have the ability until tomorrow. 

Malahal Naineni <malahal@us.ibm.com> wrote:

The following patch fixes the panic that we see often. I didn't see it
in the git://git.linux-nfs.org/projects/trondmy/linux-nfs.git git tree
yet as far as I can tell. Any comments on the patch?

Thanks, Malahal.

Malahal Naineni [malahal@us.ibm.com] wrote:
> Any comments on this patch?
> 
> Malahal Naineni [malahal@us.ibm.com] wrote:
> > Malahal Naineni [malahal@us.ibm.com] wrote:
> > > Myklebust, Trond [Trond.Myklebust@netapp.com] wrote:
> > > > Shouldn't we just skip all nfs_client structures that don't have
> > > > cl_cons_state set to NFS_CS_READY? I see no reason to display their
> > > > properties even if they have got far enough as to create an rpc client.
> > > > 
> > > > Cheers
> > > >   Trond
> > > 
> > > Sounds good to me. Here is a tested patch.
> > 
> > Any comments on this one?
> > 
> > Thanks, Malahal.
> > 
> > > 
> > > 
> > > As soon as the nfs_client gets created, its cl_rpcclient is set to
> > > ERR_PTR(-EINVAL). The rpc client structure is allocated later. Check
> > > if the client is ready before using the cl_rpcclient pointer.
> > > 
> > > Signed-off-by: Malahal Naineni <malahal@us.ibm.com>
> > > ---
> > >  fs/nfs/client.c |    4 ++++
> > >  1 files changed, 4 insertions(+), 0 deletions(-)
> > > 
> > > diff --git a/fs/nfs/client.c b/fs/nfs/client.c
> > > index 5833fbb..a54c45e 100644
> > > --- a/fs/nfs/client.c
> > > +++ b/fs/nfs/client.c
> > > @@ -1867,6 +1867,10 @@ static int nfs_server_list_show(struct seq_file *m, void *v)
> > >  	/* display one transport per line on subsequent lines */
> > >  	clp = list_entry(v, struct nfs_client, cl_share_link);
> > > 
> > > +	/* Check if the client is initialized */
> > > +	if (clp->cl_cons_state != NFS_CS_READY)
> > > +		return 0;
> > > +
> > >  	seq_printf(m, "v%u %s %s %3d %s\n",
> > >  		   clp->rpc_ops->version,
> > >  		   rpc_peeraddr2str(clp->cl_rpcclient, RPC_DISPLAY_HEX_ADDR),
> > > -- 
> > > 1.7.0.4
> > > 
> > > --
> > > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> > > the body of a message to majordomo@vger.kernel.org
> > > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > > 
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


^ permalink raw reply	[flat|nested] 8+ messages in thread
* [PATCH] Check validity of cl_rpcclient in nfs_server_list_show
@ 2011-09-14  1:55 Malahal Naineni
  2011-09-19 15:34 ` Malahal Naineni
  0 siblings, 1 reply; 8+ messages in thread
From: Malahal Naineni @ 2011-09-14  1:55 UTC (permalink / raw)
  To: linux-nfs; +Cc: Malahal Naineni

As soon as the nfs_client gets created, its cl_rpcclient is set to
ERR_PTR(-EINVAL). The rpc client structure is allocated later. Check
for the validity of cl_rpcclient before using it.

Signed-off-by: Malahal Naineni <malahal@us.ibm.com>
---
 fs/nfs/client.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index 5833fbb..ff79e72 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -1867,6 +1867,10 @@ static int nfs_server_list_show(struct seq_file *m, void *v)
 	/* display one transport per line on subsequent lines */
 	clp = list_entry(v, struct nfs_client, cl_share_link);
 
+	/* Check if the rpc client is initialized */
+	if (IS_ERR(clp->cl_rpcclient))
+		return 0;
+
 	seq_printf(m, "v%u %s %s %3d %s\n",
 		   clp->rpc_ops->version,
 		   rpc_peeraddr2str(clp->cl_rpcclient, RPC_DISPLAY_HEX_ADDR),
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2011-10-20 19:03 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-20 19:03 [PATCH] Check validity of cl_rpcclient in nfs_server_list_show Myklebust, Trond
  -- strict thread matches above, loose matches on Subject: below --
2011-09-14  1:55 Malahal Naineni
2011-09-19 15:34 ` Malahal Naineni
2011-09-19 17:33   ` Myklebust, Trond
2011-09-21  0:27     ` Malahal Naineni
2011-09-27 16:43       ` Malahal Naineni
2011-10-12 17:17         ` Malahal Naineni
2011-10-20 17:19           ` Malahal Naineni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).