diff options
author | Stanislav Sedov <stas@FreeBSD.org> | 2009-08-15 14:39:33 +0000 |
---|---|---|
committer | Stanislav Sedov <stas@FreeBSD.org> | 2009-08-15 14:39:33 +0000 |
commit | 67c601d5f6eb2b25e2cef312253bdb4ab84d5359 (patch) | |
tree | f7ce5b6f33918da49c9b99299898471db75e3f83 /usr.sbin | |
parent | 70ff501c96bb4f21032811977b41705fc058569e (diff) | |
download | src-67c601d5f6eb2b25e2cef312253bdb4ab84d5359.tar.gz src-67c601d5f6eb2b25e2cef312253bdb4ab84d5359.zip |
- Avoid overflowing the swap size counters in human-readable mode
by introducing the new CONVERT_BLOCKS macro which operates on
sizes already converted to number of blocks. With this macro
it is not longer needed to perform needless multiplication by
blocksize just to divide on it later in CONVERT macro.
Approved by: re (kib)
MFC after: 1 week
Notes
Notes:
svn path=/head/; revision=196244
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/pstat/pstat.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/usr.sbin/pstat/pstat.c b/usr.sbin/pstat/pstat.c index bf297f5ffba1..54351667b27f 100644 --- a/usr.sbin/pstat/pstat.c +++ b/usr.sbin/pstat/pstat.c @@ -460,6 +460,7 @@ getfiles(struct xfile **abuf, size_t *alen) */ #define CONVERT(v) ((int64_t)(v) * pagesize / blocksize) +#define CONVERT_BLOCKS(v) ((int64_t)(v) * pagesize) static struct kvm_swap swtot; static int nswdev; @@ -492,10 +493,10 @@ print_swap_line(const char *swdevname, intmax_t nblks, intmax_t bused, printf("%-15s %*jd ", swdevname, hlen, CONVERT(nblks)); if (humanflag) { humanize_number(usedbuf, sizeof(usedbuf), - CONVERT(blocksize * bused), "", + CONVERT_BLOCKS(bused), "", HN_AUTOSCALE, HN_B | HN_NOSPACE | HN_DECIMAL); humanize_number(availbuf, sizeof(availbuf), - CONVERT(blocksize * bavail), "", + CONVERT_BLOCKS(bavail), "", HN_AUTOSCALE, HN_B | HN_NOSPACE | HN_DECIMAL); printf("%8s %8s %5.0f%%\n", usedbuf, availbuf, bpercent); } else { |