summaryrefslogtreecommitdiffstats
path: root/lib/metadata/lv.c
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2012-01-19 15:34:32 +0000
committerZdenek Kabelac <zkabelac@redhat.com>2012-01-19 15:34:32 +0000
commite58b5dd8e88ec6a58a7cec4d95eb0fe9b6c4c3f5 (patch)
treee52d5e1ee19e4def10fa4f9c0cc84d7ae29c813c /lib/metadata/lv.c
parent53d7985fa1476a7c0e430c01a6cb2cd679d4912e (diff)
downloadlvm2-e58b5dd8e88ec6a58a7cec4d95eb0fe9b6c4c3f5.tar.gz
lvm2-e58b5dd8e88ec6a58a7cec4d95eb0fe9b6c4c3f5.tar.xz
lvm2-e58b5dd8e88ec6a58a7cec4d95eb0fe9b6c4c3f5.zip
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.
Diffstat (limited to 'lib/metadata/lv.c')
-rw-r--r--lib/metadata/lv.c22
1 files changed, 21 insertions, 1 deletions
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;