diff options
author | Chris Mason <chris.mason@oracle.com> | 2008-04-22 14:06:31 -0400 |
---|---|---|
committer | David Woodhouse <dwmw2@hera.kernel.org> | 2008-04-22 14:06:31 -0400 |
commit | 358564890ac230ccc8af2661268a6bcb0d6ea18f (patch) | |
tree | aea7067c1cc525b4c443fcb52920f1a34b08a935 /utils.c | |
parent | b569dafbf2acfb99f8c0546ad28cb61f860f30db (diff) |
Add a command to show all of the btrfs filesystems on the box (btrfs-show)
Diffstat (limited to 'utils.c')
-rw-r--r-- | utils.c | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -774,3 +774,29 @@ brelse: out: return ret; } + +static char *size_strs[] = { "", "KB", "MB", "GB", "TB", + "PB", "EB", "ZB", "YB"}; +char *pretty_sizes(u64 size) +{ + int num_divs = 0; + u64 last_size = size; + u64 fract_size = size; + float fraction; + char *pretty; + + while(size > 0) { + fract_size = last_size; + last_size = size; + size /= 1024; + num_divs++; + } + if (num_divs > ARRAY_SIZE(size_strs)) + return NULL; + + fraction = (float)fract_size / 1024; + pretty = malloc(16); + sprintf(pretty, "%.2f%s", fraction, size_strs[num_divs-1]); + return pretty; +} + |