[PATCH 0/2] Support for small units in display
Allow better inspection of sizes using an environment variable. Not pretty, but convenient to determine the exact size of a filesystem, eg when resizing an underlying partition or LUN. Pierre Carrier (2): utils.c: fix sizes in B malloc in pretty_sizes utils.c: offer to limit divisions in pretty_sizes utils.c | 18 +++--- 1 file changed, 15 insertions(+), 3 deletions(-) -- 1.7.11.1 -- To unsubscribe from this list: send the line unsubscribe linux-btrfs in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/2] utils.c: fix sizes in B malloc in pretty_sizes
Before, sizes below 1KB where displayed in KB, but without a unit. Signed-off-by: Pierre Carrier pie...@spotify.com diff --git a/utils.c b/utils.c index aade9e2..dde0513 100644 --- a/utils.c +++ b/utils.c @@ -1108,13 +1108,20 @@ char *pretty_sizes(u64 size) size /= 1024; num_divs++; } - if (num_divs == 0) + if (num_divs == 0) { num_divs = 1; + fraction = (float)fract_size; + } else + fraction = (float)fract_size / 1024; + if (num_divs ARRAY_SIZE(size_strs)) return NULL; - fraction = (float)fract_size / 1024; + pretty = malloc(pretty_len); + if (!pretty) + return NULL; + snprintf(pretty, pretty_len, %.2f%s, fraction, size_strs[num_divs-1]); return pretty; } -- 1.7.11.1 -- To unsubscribe from this list: send the line unsubscribe linux-btrfs in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 0/2] Support for small units in display
I didn't test the initial patches enough. A second round is coming. This time it works fine: devid1 size 66746609664.00 used 66746580992.00 path /dev/sda5 devid1 size 65182236.00KB used 65182208.00KB path /dev/sda5 devid1 size 63654.53MB used 63654.50MB path /dev/sda5 devid1 size 62.16GB used 62.16GB path /dev/sda5 devid1 size 62.16GB used 62.16GB path /dev/sda5 Pierre Carrier (2): utils.c: fix sizes in B malloc in pretty_sizes utils.c: offer to limit divisions in pretty_sizes utils.c | 17 ++--- 1 file changed, 14 insertions(+), 3 deletions(-) -- 1.7.11.1 -- To unsubscribe from this list: send the line unsubscribe linux-btrfs in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/2] utils.c: fix sizes in B malloc in pretty_sizes
Before, sizes below 1KB are still displayed in KB, but without a unit. Signed-off-by: Pierre Carrier pie...@spotify.com diff --git a/utils.c b/utils.c index aade9e2..937e763 100644 --- a/utils.c +++ b/utils.c @@ -1108,13 +1108,20 @@ char *pretty_sizes(u64 size) size /= 1024; num_divs++; } - if (num_divs == 0) + if (num_divs = 1) { num_divs = 1; + fraction = (float)fract_size; + } else + fraction = (float)fract_size / 1024; + if (num_divs ARRAY_SIZE(size_strs)) return NULL; - fraction = (float)fract_size / 1024; + pretty = malloc(pretty_len); + if (!pretty) + return NULL; + snprintf(pretty, pretty_len, %.2f%s, fraction, size_strs[num_divs-1]); return pretty; } -- 1.7.11.1 -- To unsubscribe from this list: send the line unsubscribe linux-btrfs in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 2/2] utils.c: offer to limit divisions in pretty_sizes
Dirty hack to allow inspection of sizes in lower units. Useful to know the minimum size a partition shoud be resized to after a 'btrfs filesystem resize'. Label: 'home' uuid: 10453c4c-1c5b-4df5-b4a5-43a7f377430a Total devices 1 FS bytes used 42.80GB devid1 size 62.16GB used 62.16GB path /dev/sda5 Label: 'home' uuid: 10453c4c-1c5b-4df5-b4a5-43a7f377430a Total devices 1 FS bytes used 44884524.00KB devid1 size 65182236.00KB used 65182208.00KB path /dev/sda5 Signed-off-by: Pierre Carrier pie...@spotify.com diff --git a/utils.c b/utils.c index 937e763..3f0b7e7 100644 --- a/utils.c +++ b/utils.c @@ -1096,13 +1096,18 @@ static char *size_strs[] = { , KB, MB, GB, TB, char *pretty_sizes(u64 size) { int num_divs = 0; + int max_divs = INT_MAX; int pretty_len = 16; u64 last_size = size; u64 fract_size = size; float fraction; char *pretty; + char *max_divs_s; - while(size 0) { + if (max_divs_s = getenv(MAX_DIVS)) + max_divs = atoi(max_divs_s); + + while(size 0 num_divs = max_divs) { fract_size = last_size; last_size = size; size /= 1024; @@ -1117,7 +1122,6 @@ char *pretty_sizes(u64 size) if (num_divs ARRAY_SIZE(size_strs)) return NULL; - pretty = malloc(pretty_len); if (!pretty) return NULL; -- 1.7.11.1 -- To unsubscribe from this list: send the line unsubscribe linux-btrfs in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html