X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Fnfsstat%2Fnfsstat.c;h=bacef8e8353402b2136e4fef098b4f41d5a39e0b;hp=533b4b54289a4d5fe961706e1911ffb5ccea8041;hb=05f93b531d59df6e976d9b40c97b51546524040a;hpb=1f76eab5b434cf13895920e7cab5ddf790d67b4f diff --git a/utils/nfsstat/nfsstat.c b/utils/nfsstat/nfsstat.c index 533b4b5..bacef8e 100644 --- a/utils/nfsstat/nfsstat.c +++ b/utils/nfsstat/nfsstat.c @@ -25,13 +25,30 @@ #define MAXNRVALS 32 -static unsigned int srvproc2info[20], srvproc2info_old[20]; /* NFSv2 call counts ([0] == 18) */ -static unsigned int cltproc2info[20], cltproc2info_old[20]; /* NFSv2 call counts ([0] == 18) */ -static unsigned int srvproc3info[24], srvproc3info_old[24]; /* NFSv3 call counts ([0] == 22) */ -static unsigned int cltproc3info[24], cltproc3info_old[24]; /* NFSv3 call counts ([0] == 22) */ -static unsigned int srvproc4info[4], srvproc4info_old[4]; /* NFSv4 call counts ([0] == 2) */ -static unsigned int cltproc4info[50], cltproc4info_old[50]; /* NFSv4 call counts ([0] == 48) */ -static unsigned int srvproc4opsinfo[61], srvproc4opsinfo_old[61]; /* NFSv4 call counts ([0] == 40) */ +enum { + SRVPROC2_SZ = 18, + CLTPROC2_SZ = 18, + SRVPROC3_SZ = 22, + CLTPROC3_SZ = 22, + SRVPROC4_SZ = 2, + CLTPROC4_SZ = 49, + SRVPROC4OPS_SZ = 59, +}; + +static unsigned int srvproc2info[SRVPROC2_SZ+2], + srvproc2info_old[SRVPROC2_SZ+2]; /* NFSv2 call counts ([0] == 18) */ +static unsigned int cltproc2info[CLTPROC2_SZ+2], + cltproc2info_old[CLTPROC2_SZ+2]; /* NFSv2 call counts ([0] == 18) */ +static unsigned int srvproc3info[SRVPROC3_SZ+2], + srvproc3info_old[SRVPROC3_SZ+2]; /* NFSv3 call counts ([0] == 22) */ +static unsigned int cltproc3info[CLTPROC3_SZ+2], + cltproc3info_old[CLTPROC3_SZ+2]; /* NFSv3 call counts ([0] == 22) */ +static unsigned int srvproc4info[SRVPROC4_SZ+2], + srvproc4info_old[SRVPROC4_SZ+2]; /* NFSv4 call counts ([0] == 2) */ +static unsigned int cltproc4info[CLTPROC4_SZ+2], + cltproc4info_old[CLTPROC4_SZ+2]; /* NFSv4 call counts ([0] == 48) */ +static unsigned int srvproc4opsinfo[SRVPROC4OPS_SZ+2], + srvproc4opsinfo_old[SRVPROC4OPS_SZ+2]; /* NFSv4 call counts ([0] == 59) */ static unsigned int srvnetinfo[5], srvnetinfo_old[5]; /* 0 # of received packets * 1 UDP packets * 2 TCP packets @@ -75,25 +92,25 @@ static unsigned int srvfhinfo[7], srvfhinfo_old[7]; /* (for kernels >= 2.4.0) * compatability. */ -static const char * nfsv2name[18] = { +static const char * nfsv2name[SRVPROC2_SZ] = { "null", "getattr", "setattr", "root", "lookup", "readlink", "read", "wrcache", "write", "create", "remove", "rename", "link", "symlink", "mkdir", "rmdir", "readdir", "fsstat" }; -static const char * nfsv3name[22] = { +static const char * nfsv3name[SRVPROC3_SZ] = { "null", "getattr", "setattr", "lookup", "access", "readlink", "read", "write", "create", "mkdir", "symlink", "mknod", "remove", "rmdir", "rename", "link", "readdir", "readdirplus", "fsstat", "fsinfo", "pathconf", "commit" }; -static const char * nfssrvproc4name[2] = { +static const char * nfssrvproc4name[SRVPROC4_SZ] = { "null", "compound", }; -static const char * nfscltproc4name[48] = { +static const char * nfscltproc4name[CLTPROC4_SZ] = { "null", "read", "write", "commit", "open", "open_conf", "open_noat", "open_dgrd", "close", "setattr", "fsinfo", "renew", "setclntid", "confirm", "lock", @@ -101,6 +118,7 @@ static const char * nfscltproc4name[48] = { "remove", "rename", "link", "symlink", "create", "pathconf", "statfs", "readlink", "readdir", "server_caps", "delegreturn", "getacl", "setacl", "fs_locations", + "rel_lkowner", /* nfsv4.1 client ops */ "exchange_id", "create_ses", @@ -118,7 +136,7 @@ static const char * nfscltproc4name[48] = { "ds_commit", }; -static const char * nfssrvproc4opname[59] = { +static const char * nfssrvproc4opname[SRVPROC4OPS_SZ] = { "op0-unused", "op1-unused", "op2-future", "access", "close", "commit", "create", "delegpurge", "delegreturn", "getattr", "getfh", "link", "lock", "lockt", "locku", "lookup", "lookup_root", "nverify", @@ -774,7 +792,7 @@ print_callstats(const char *hdr, const char **names, { unsigned long long total; unsigned long long pct; - int i, j; + unsigned int i, j; fputs(hdr, stdout); for (i = 0, total = 0; i < nr; i++) @@ -799,7 +817,7 @@ print_callstats_list(const char *hdr, const char **names, unsigned int *callinfo, unsigned int nr) { unsigned long long calltotal; - int i; + unsigned int i; for (i = 0, calltotal = 0; i < nr; i++) { calltotal += callinfo[i]; @@ -1101,7 +1119,7 @@ unpause(int sig) time_diff = difftime(endtime, starttime); minutes = time_diff / 60; seconds = (int)time_diff % 60; - printf("Signal received; displaying (only) statistics gathered over the last %d minutes, %d seconds:\n\n", minutes, seconds); + printf("Signal %d received; displaying (only) statistics gathered over the last %d minutes, %d seconds:\n\n", sig, minutes, seconds); } static void