Re: [PATCH] nfs-utils: make nfsstat read and print stats as unsigned integers

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

 



	hello, jeff,

	i think one other place that could use a signed->unsigned fix is 
in parse_pretty_statfile(), where "sum" is declared as signed but actually 
represents an unsigned total.

	thanks,

	d
	.
	
On Wed, 16 Apr 2008, Jeff Layton wrote:

> The nfsstat program reads /proc/net/rpc/* files to gets info about
> calls. This info is output as unsigned numbers (at least on any
> relatively recent kernel). When nfsstat prints these numbers, they are
> printed as signed integers. When the call counters reach 2^31, things
> start being printed as negative numbers.
> 
> This patch changes nfsstat to read and print all counters as unsigned
> integers. Tested by hacking up a kernel to initialize call counters to
> 2^31+1.
> 
> Thanks to Takafumi Miki for the initial version of this patch.
> 
> Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx>
> ---
>  utils/nfsstat/nfsstat.c |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/utils/nfsstat/nfsstat.c b/utils/nfsstat/nfsstat.c
> index aa6c961..36ad8ce 100644
> --- a/utils/nfsstat/nfsstat.c
> +++ b/utils/nfsstat/nfsstat.c
> @@ -539,7 +539,7 @@ print_numbers(const char *hdr, unsigned int *info, unsigned int nr)
>  
>  	fputs(hdr, stdout);
>  	for (i = 0; i < nr; i++)
> -		printf("%s%-8d", i? "   " : "", info[i]);
> +		printf("%s%-8u", i? "   " : "", info[i]);
>  	printf("\n");
>  }
>  
> @@ -562,7 +562,7 @@ print_callstats(const char *hdr, const char **names,
>  		printf("\n");
>  		for (j = 0; j < 6 && i + j < nr; j++) {
>  			pct = ((unsigned long long) info[i+j]*100)/total;
> -			printf("%-8d%3llu%% ", info[i+j], pct);
> +			printf("%-8u%3llu%% ", info[i+j], pct);
>  		}
>  		printf("\n");
>  	}
> @@ -604,7 +604,7 @@ parse_raw_statfile(const char *name, struct statinfo *statp)
>  		for (i = 0; i < cnt; i++) {
>  			if (!(sp = strtok(NULL, " \t")))
>  				break;
> -			ip->valptr[i] = atoi(sp);
> +			ip->valptr[i] = (unsigned int) strtoul(sp, NULL, 0);
>  			total += ip->valptr[i];
>  		}
>  		ip->valptr[cnt - 1] = total;
> -- 
> 1.5.3.6
> 
> _______________________________________________
> NFSv4 mailing list
> NFSv4@xxxxxxxxxxxxx
> http://linux-nfs.org/cgi-bin/mailman/listinfo/nfsv4
> 
--
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