summaryrefslogtreecommitdiff
path: root/utils.c
diff options
context:
space:
mode:
authorJosef Bacik <jbacik@fusionio.com>2013-10-22 10:10:21 -0400
committerChris Mason <chris.mason@fusionio.com>2013-10-24 05:57:44 -0400
commitcee267d8c8175e6f8cd7605ccb11379a20ea8c99 (patch)
tree836a0eeb89cb4ac2320619c25be41fcb61092012 /utils.c
parentd33b2a48429563b3c777249ae03cfbecb13d9d07 (diff)
Btrfs-progs: make pretty_sizes take u64 instead of a double
This got changed to a double but all the callers still use a u64, which causes us to segfault sometimes because of some weird C voodoo that I had to have explained to me. Apparently because we're using a double the compiler will use the floating point registers to hold our argument which ends up not being aligned properly if you don't actually give it a double so it will cause problems for other things, in our case it was screwing up str_bytes so it was larger than the actual size of the str. This patch fixes the segfault. Thanks, Signed-off-by: Josef Bacik <jbacik@fusionio.com> Signed-off-by: Chris Mason <chris.mason@fusionio.com>
Diffstat (limited to 'utils.c')
-rw-r--r--utils.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/utils.c b/utils.c
index d2410444..5bedd97f 100644
--- a/utils.c
+++ b/utils.c
@@ -1213,7 +1213,7 @@ out:
}
static char *size_strs[] = { "", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB"};
-int pretty_size_snprintf(double size, char *str, size_t str_bytes)
+int pretty_size_snprintf(u64 size, char *str, size_t str_bytes)
{
int num_divs = 0;
float fraction;