Commit 87a8a30d6 added the function based on the virsh function, but used an unsigned long long instead of a double and thus that limits the maximum result. Signed-off-by: John Ferlan <jferlan@xxxxxxxxxx> --- src/util/virutil.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/util/virutil.c b/src/util/virutil.c index b5b949ab22..c0783ecb28 100644 --- a/src/util/virutil.c +++ b/src/util/virutil.c @@ -491,6 +491,10 @@ virFormatIntDecimal(char *buf, size_t buflen, int val) * * Similar to vshPrettyCapacity, but operates on integers and not doubles * + * NB: Since using unsigned long long, we are limited to at most a "PiB" + * to make pretty. This is because a PiB is 1152921504606846976 bytes, + * but that value * 1024 > ULLONG_MAX value 18446744073709551615 bytes. + * * Returns shortened value that can be used with @unit. */ unsigned long long @@ -524,12 +528,7 @@ virFormatIntPretty(unsigned long long val, return val / (limit / 1024); } limit *= 1024; - if (val % limit) { - *unit = "PiB"; - return val / (limit / 1024); - } - limit *= 1024; - *unit = "EiB"; + *unit = "PiB"; return val / (limit / 1024); } -- 2.17.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list