summaryrefslogtreecommitdiff
path: root/utils.c
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2008-04-22 14:06:31 -0400
committerDavid Woodhouse <dwmw2@hera.kernel.org>2008-04-22 14:06:31 -0400
commit358564890ac230ccc8af2661268a6bcb0d6ea18f (patch)
treeaea7067c1cc525b4c443fcb52920f1a34b08a935 /utils.c
parentb569dafbf2acfb99f8c0546ad28cb61f860f30db (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.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/utils.c b/utils.c
index b9d85ac0..5845903a 100644
--- a/utils.c
+++ b/utils.c
@@ -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;
+}
+