[sheepdog] [PATCH] dog: show actual redundancy scheme for 'vdi list'
Hitoshi Mitake
mitake.hitoshi at gmail.com
Tue Jan 21 10:36:48 CET 2014
At Tue, 21 Jan 2014 16:02:35 +0800,
Liu Yuan wrote:
>
> With this patch, 'vdi list' will show actual redundancy as follow:
>
> yliu at ubuntu-precise:~/sheepdog$ dog/dog vdi list
> Name Id Size Used Shared Creation time VDI id Copies Tag
> test 0 10 MB 0.0 MB 0.0 MB 2014-01-21 15:54 7c2b25 4:2
> test1 0 20 MB 0.0 MB 0.0 MB 2014-01-21 15:59 fd32fc 3
>
> Signed-off-by: Liu Yuan <namei.unix at gmail.com>
> ---
> dog/vdi.c | 26 ++++++++++++++++++++++----
> 1 file changed, 22 insertions(+), 4 deletions(-)
Looks good to me.
Reviewed-by: Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>
Thanks,
Hitoshi
>
> diff --git a/dog/vdi.c b/dog/vdi.c
> index 8fd4664..d487234 100644
> --- a/dog/vdi.c
> +++ b/dog/vdi.c
> @@ -181,6 +181,20 @@ static void stat_data_objs(const struct sd_inode *inode, uint64_t *my_objs,
> stat_data_objs_btree(inode, my_objs, cow_objs);
> }
>
> +static char *redundancy_scheme(uint8_t copy_nr, uint8_t policy)
> +{
> + static char str[10];
> +
> + if (policy > 0) {
> + int d, p;
> + ec_policy_to_dp(policy, &d, &p);
> + snprintf(str, sizeof(str), "%d:%d", d, p);
> + } else {
> + snprintf(str, sizeof(str), "%d", copy_nr);
> + }
> + return str;
> +}
> +
> static void print_vdi_list(uint32_t vid, const char *name, const char *tag,
> uint32_t snapid, uint32_t flags,
> const struct sd_inode *i, void *data)
> @@ -216,19 +230,23 @@ static void print_vdi_list(uint32_t vid, const char *name, const char *tag,
> putchar('\\');
> putchar(*name++);
> }
> - printf(" %d %s %s %s %s %" PRIx32 " %d %s\n", snapid,
> + printf(" %d %s %s %s %s %" PRIx32 " %s %s\n", snapid,
> strnumber(i->vdi_size),
> strnumber(my_objs * SD_DATA_OBJ_SIZE),
> strnumber(cow_objs * SD_DATA_OBJ_SIZE),
> - dbuf, vid, i->nr_copies, i->tag);
> + dbuf, vid,
> + redundancy_scheme(i->nr_copies, i->copy_policy),
> + i->tag);
> } else {
> - printf("%c %-8s %5d %7s %7s %7s %s %7" PRIx32 " %5d %13s\n",
> + printf("%c %-8s %5d %7s %7s %7s %s %7" PRIx32 " %6s %13s\n",
> vdi_is_snapshot(i) ? 's' : (is_clone ? 'c' : ' '),
> name, snapid,
> strnumber(i->vdi_size),
> strnumber(my_objs * SD_DATA_OBJ_SIZE),
> strnumber(cow_objs * SD_DATA_OBJ_SIZE),
> - dbuf, vid, i->nr_copies, i->tag);
> + dbuf, vid,
> + redundancy_scheme(i->nr_copies, i->copy_policy),
> + i->tag);
> }
> }
>
> --
> 1.8.1.2
>
> --
> sheepdog mailing list
> sheepdog at lists.wpkg.org
> http://lists.wpkg.org/mailman/listinfo/sheepdog
More information about the sheepdog
mailing list