From eb1d49d3f1232e352c0013c651f6cc4b43d99403 Mon Sep 17 00:00:00 2001 From: Jacob Malevich Date: Tue, 10 Feb 2015 16:55:10 -0800 Subject: [PATCH] bcacheadm: fix capacity command regression from 5730e47b Signed-off-by: Jacob Malevich Issue DAT-1977 Change-Id: I598ca9e5623fde441bb842580c2494fd03316f00 --- bcache.c | 31 +++++++++---------------------- bcacheadm.c | 2 +- 2 files changed, 10 insertions(+), 23 deletions(-) diff --git a/bcache.c b/bcache.c index 874fe96a..f5609e0a 100644 --- a/bcache.c +++ b/bcache.c @@ -1405,24 +1405,24 @@ char *bcache_get_capacity(const char *cset_dir, const char *capacity_uuid, double avail_buckets[MAX_DEVS]; char *dev_names[MAX_DEVS]; int dev_count = 0, i; - char intbuf[4]; double total_cap = 0, total_free = 0; int precision = 2; - snprintf(bucket_size_path, MAX_PATH, "%s/%s/%s/%s", cset_dir, - capacity_uuid, "cache0", "bucket_size_bytes"); - snprintf(nbuckets_path, MAX_PATH, "%s/%s/%s/%s", cset_dir, - capacity_uuid, "cache0", "nbuckets"); - snprintf(avail_buckets_path, MAX_PATH, "%s/%s/%s/%s", cset_dir, - capacity_uuid, "cache0", "available_buckets"); - snprintf(cache_path, MAX_PATH, "%s/%s/%s", cset_dir, capacity_uuid, - "cache0"); while (true) { char buf[MAX_PATH]; int len; DIR *cache_dir; + snprintf(bucket_size_path, sizeof(bucket_size_path), "%s/%s/%s%d/%s", cset_dir, + capacity_uuid, "cache", dev_count, "bucket_size_bytes"); + snprintf(nbuckets_path, sizeof(nbuckets_path), "%s/%s/%s%d/%s", cset_dir, + capacity_uuid, "cache", dev_count, "nbuckets"); + snprintf(avail_buckets_path, sizeof(avail_buckets_path), "%s/%s/%s%d/%s", cset_dir, + capacity_uuid, "cache", dev_count, "available_buckets"); + snprintf(cache_path, sizeof(cache_path), "%s/%s/%s%d", cset_dir, capacity_uuid, + "cache", dev_count); + if((cache_dir = opendir(cache_path)) == NULL) break; @@ -1452,20 +1452,7 @@ char *bcache_get_capacity(const char *cset_dir, const char *capacity_uuid, dev_names[dev_count] = dev_name(buf); } - snprintf(intbuf, 4, "%d", dev_count); - - /* remove i/stat and append i++/stat */ - bucket_size_path[strlen(cache_path) - strlen(intbuf)] = 0; - nbuckets_path[strlen(cache_path) - strlen(intbuf)] = 0; - avail_buckets_path[strlen(cache_path) - strlen(intbuf)] = 0; - cache_path[strlen(cache_path) - strlen(intbuf)] = 0; - dev_count++; - - strcat(cache_path, intbuf); - strcat(bucket_size_path, intbuf); - strcat(nbuckets_path, intbuf); - strcat(avail_buckets_path, intbuf); } printf("%-15s%-25s%-25s\n", "Device Name", "Capacity (512 Blocks)", "Free (512 Blocks)"); diff --git a/bcacheadm.c b/bcacheadm.c index e619c01d..4e657b5d 100644 --- a/bcacheadm.c +++ b/bcacheadm.c @@ -270,7 +270,7 @@ static NihOption status_options[] = { static NihOption capacity_options[] = { {'u', "set", N_("cache_set UUID"), NULL, "UUID", &capacity_uuid, NULL}, - {'d', "devs", N_("dev UUID"), NULL, NULL, &capacity_devs, NULL}, + {'d', "devs", N_("Individual device capacities"), NULL, NULL, &capacity_devs, NULL}, NIH_OPTION_LAST };