From e58b5dd8e88ec6a58a7cec4d95eb0fe9b6c4c3f5 Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Thu, 19 Jan 2012 15:34:32 +0000 Subject: Thin add new display field for lvs New field Data% is able to display info about thin_pool, thin, snapshot and has generic meaning here. Simple Time/Host field are here to display host and time creation. --- lib/metadata/lv.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'lib/metadata/lv.c') diff --git a/lib/metadata/lv.c b/lib/metadata/lv.c index 84e47796..b2176f2a 100644 --- a/lib/metadata/lv.c +++ b/lib/metadata/lv.c @@ -1,6 +1,6 @@ /* * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved. - * Copyright (C) 2004-2010 Red Hat, Inc. All rights reserved. + * Copyright (C) 2004-2012 Red Hat, Inc. All rights reserved. * * This file is part of LVM2. * @@ -129,8 +129,11 @@ uint64_t lvseg_chunksize(const struct lv_segment *seg) if (lv_is_cow(seg->lv)) size = (uint64_t) find_cow(seg->lv)->chunk_size; + else if (lv_is_thin_pool(seg->lv)) + size = (uint64_t) seg->data_block_size; else size = UINT64_C(0); + return size; } @@ -203,6 +206,18 @@ char *lv_pool_lv_dup(struct dm_pool *mem, const struct logical_volume *lv) return NULL; } +char *lv_data_lv_dup(struct dm_pool *mem, const struct logical_volume *lv) +{ + return lv_is_thin_pool(lv) ? + dm_pool_strdup(mem, seg_lv(first_seg(lv), 0)->name) : NULL; +} + +char *lv_metadata_lv_dup(struct dm_pool *mem, const struct logical_volume *lv) +{ + return lv_is_thin_pool(lv) ? + dm_pool_strdup(mem, first_seg(lv)->metadata_lv->name) : NULL; +} + int lv_kernel_minor(const struct logical_volume *lv) { struct lvinfo info; @@ -255,6 +270,11 @@ uint64_t lv_origin_size(const struct logical_volume *lv) return 0; } +uint64_t lv_metadata_size(const struct logical_volume *lv) +{ + return lv_is_thin_pool(lv) ? first_seg(lv)->metadata_lv->size : 0; +} + char *lv_path_dup(struct dm_pool *mem, const struct logical_volume *lv) { char *repstr; -- cgit