2008-09-26 12:14:23

by Benny Halevy

[permalink] [raw]
Subject: [PATCH] nfsd: do_probe_callback should not clear rpc stats

Now that cb_stats are static (since commit
ff7d9756b501744540be65e172d27ee321d86103)
there's no need to clear them.

Initially I thought it might make sense to do
that every callback probing but since the stats
are per-program and they are shared between possibly
several client callback instances, zeroing them out
seems like the wrong thing to do.

Note that that commit also introduced a bug
since stats.program is also being cleared in the process
and it is not restored after the memset as it used to be.

Signed-off-by: Benny Halevy <[email protected]>
---
fs/nfsd/nfs4callback.c | 3 ---
1 files changed, 0 insertions(+), 3 deletions(-)

diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c
index 5e95909..7b94701 100644
--- a/fs/nfsd/nfs4callback.c
+++ b/fs/nfsd/nfs4callback.c
@@ -399,9 +399,6 @@ static int do_probe_callback(void *data)
__func__, args.program->name, args.program->number,
args.program->nrvers, args.version);

- /* Initialize rpc_stat */
- memset(args.program->stats, 0, sizeof(struct rpc_stat));
-
/* Create RPC client */
client = rpc_create(&args);
if (IS_ERR(client)) {



2008-09-27 03:38:57

by Bruce Fields

[permalink] [raw]
Subject: Re: [PATCH] nfsd: do_probe_callback should not clear rpc stats

On Fri, Sep 26, 2008 at 03:14:13PM +0300, Benny Halevy wrote:
> Now that cb_stats are static (since commit
> ff7d9756b501744540be65e172d27ee321d86103)
> there's no need to clear them.
>
> Initially I thought it might make sense to do
> that every callback probing but since the stats
> are per-program and they are shared between possibly
> several client callback instances, zeroing them out
> seems like the wrong thing to do.
>
> Note that that commit also introduced a bug
> since stats.program is also being cleared in the process
> and it is not restored after the memset as it used to be.

Thanks applied.--b.

>
> Signed-off-by: Benny Halevy <[email protected]>
> ---
> fs/nfsd/nfs4callback.c | 3 ---
> 1 files changed, 0 insertions(+), 3 deletions(-)
>
> diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c
> index 5e95909..7b94701 100644
> --- a/fs/nfsd/nfs4callback.c
> +++ b/fs/nfsd/nfs4callback.c
> @@ -399,9 +399,6 @@ static int do_probe_callback(void *data)
> __func__, args.program->name, args.program->number,
> args.program->nrvers, args.version);
>
> - /* Initialize rpc_stat */
> - memset(args.program->stats, 0, sizeof(struct rpc_stat));
> -
> /* Create RPC client */
> client = rpc_create(&args);
> if (IS_ERR(client)) {
>