Re: [PATCH 1/1] bring-back-chatty

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2008-03-28 at 11:21 -0400, Olga Kornievskaia wrote:
> 
> Trond Myklebust wrote:
> > On Thu, 2008-03-27 at 17:56 -0400, Olga Kornievskaia wrote:
> >   
> >> From: Olga Kornievskaia <aglo@xxxxxxxxxxxxxxxxxxxxxx>
> >>
> >> Another attempt to silence call_timeout() prints by bringing back "chatty".
> >>
> >> When the client's callback server goes away, the server's callback client
> >> tries to contact the server and times out. For nfsd, it is beneficial to
> >> printout a message when the client is unable to contact the server. For
> >> the callback server, the same message is printed yet it is really not
> >> an error. Thus we need a way to silence the message for the callback
> >> and yet print it for other cases.
> >>
> >> ---
> >>  fs/nfsd/nfs4callback.c      |    2 +-
> >>  include/linux/sunrpc/clnt.h |    4 +++-
> >>  net/sunrpc/clnt.c           |    5 ++++-
> >>  3 files changed, 8 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c
> >> index aae2b29..00d3448 100644
> >> --- a/fs/nfsd/nfs4callback.c
> >> +++ b/fs/nfsd/nfs4callback.c
> >> @@ -367,7 +367,7 @@ static int do_probe_callback(void *data)
> >>  		.program	= program,
> >>  		.version	= nfs_cb_version[1]->number,
> >>  		.authflavor	= RPC_AUTH_UNIX, /* XXX: need AUTH_GSS... */
> >> -		.flags		= (RPC_CLNT_CREATE_NOPING),
> >> +		.flags		= (RPC_CLNT_CREATE_NOPING | RPC_CLNT_CREATE_QUIET),
> >>  	};
> >>  	struct rpc_message msg = {
> >>  		.rpc_proc       = &nfs4_cb_procedures[NFSPROC4_CLNT_CB_NULL],
> >> diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h
> >> index 129a86e..249f7a2 100644
> >> --- a/include/linux/sunrpc/clnt.h
> >> +++ b/include/linux/sunrpc/clnt.h
> >> @@ -42,7 +42,8 @@ struct rpc_clnt {
> >>  
> >>  	unsigned int		cl_softrtry : 1,/* soft timeouts */
> >>  				cl_discrtry : 1,/* disconnect before retry */
> >> -				cl_autobind : 1;/* use getport() */
> >> +				cl_autobind : 1,/* use getport() */
> >> +				cl_chatty   : 1;/* be verbose */
> >>  
> >>  	struct rpc_rtt *	cl_rtt;		/* RTO estimator data */
> >>  	const struct rpc_timeout *cl_timeout;	/* Timeout strategy */
> >> @@ -114,6 +115,7 @@ struct rpc_create_args {
> >>  #define RPC_CLNT_CREATE_NONPRIVPORT	(1UL << 3)
> >>  #define RPC_CLNT_CREATE_NOPING		(1UL << 4)
> >>  #define RPC_CLNT_CREATE_DISCRTRY	(1UL << 5)
> >> +#define RPC_CLNT_CREATE_QUIET		(1UL << 6)
> >>  
> >>  struct rpc_clnt *rpc_create(struct rpc_create_args *args);
> >>  struct rpc_clnt	*rpc_bind_new_program(struct rpc_clnt *,
> >> diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
> >> index 8c6a7f1..3aa3348 100644
> >> --- a/net/sunrpc/clnt.c
> >> +++ b/net/sunrpc/clnt.c
> >> @@ -328,6 +328,8 @@ struct rpc_clnt *rpc_create(struct rpc_create_args *args)
> >>  		clnt->cl_autobind = 1;
> >>  	if (args->flags & RPC_CLNT_CREATE_DISCRTRY)
> >>  		clnt->cl_discrtry = 1;
> >> +	if (args->flags & RPC_CLNT_CREATE_QUIET)
> >> +		clnt->cl_chatty = 0;
> >>     
> >
> > Shouldn't that be
> > 	if (!(args->flags & RPC_CLNT_CREATE_QUIET))
> > 		clnt->cl_chatty = 1;
> >
> > since clnt->cl_chatty is automatically initialised to 0?
> >   
> clnt->cl_chatty is automatically initialized to 1. 

Where? I couldn't find any other lines that initialise it in this patch.

> >   
> >>  
> >>  	return clnt;
> >>  }
> >> @@ -1160,7 +1162,8 @@ call_timeout(struct rpc_task *task)
> >>  	task->tk_timeouts++;
> >>  
> >>  	if (RPC_IS_SOFT(task)) {
> >> -		printk(KERN_NOTICE "%s: server %s not responding, timed out\n",
> >> +		if (clnt->cl_chatty)
> >> +			printk(KERN_NOTICE "%s: server %s not responding, timed out\n",
> >>  				clnt->cl_protname, clnt->cl_server);
> >>  		rpc_exit(task, -EIO);
> >>  		return;
> >>     
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> > the body of a message to majordomo@xxxxxxxxxxxxxxx
> > 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@xxxxxxxxxxxxxxx
> 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@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux