summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2014-04-28 11:56:07 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2014-04-28 12:41:25 +0200
commit4c405a9b490423fc2dbcc475ca4649f2c4a03f5e (patch)
tree3db5f9d975b975cc3281f1bf4f9d41a649c958d8
parent71314a9905eb5f515aa15af5de2a1f73d82b5ae3 (diff)
downloadlvm2-4c405a9b490423fc2dbcc475ca4649f2c4a03f5e.tar.gz
thin: move segment info display to correct code section
Relocate info from thin pool and thin volume segments to proper code section for segments. Add discards and thin count status info. Info is shown with 'lvdisplay --maps' (like for other segments).
-rw-r--r--WHATS_NEW1
-rw-r--r--lib/display/display.c6
-rw-r--r--lib/thin/thin.c24
3 files changed, 25 insertions, 6 deletions
diff --git a/WHATS_NEW b/WHATS_NEW
index 4d4640fe2..9d792a295 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.107 -
==================================
+ Move segment thin pool/volume info into segment display 'lvdisplay --maps'.
Display thin pool usage even when just thin volume is available.
Display monitoring status for monitorable segments in 'lvdisplay --maps'.
Display virtual extents for virtual LVs in 'lvdisplay --maps'.
diff --git a/lib/display/display.c b/lib/display/display.c
index 83fb90168..36274b6ef 100644
--- a/lib/display/display.c
+++ b/lib/display/display.c
@@ -509,7 +509,6 @@ int lvdisplay_full(struct cmd_context *cmd,
if (lv_is_thin_volume(lv)) {
seg = first_seg(lv);
log_print("LV Pool name %s", seg->pool_lv->name);
- log_print("LV Thin device ID %u", seg->device_id);
if (seg->origin)
log_print("LV Thin origin name %s",
seg->origin->name);
@@ -531,13 +530,8 @@ int lvdisplay_full(struct cmd_context *cmd,
}
/* FIXME: display thin_pool targets transid for activated LV as well */
seg = first_seg(lv);
- log_print("LV Pool transaction ID %" PRIu64, seg->transaction_id);
log_print("LV Pool metadata %s", seg->metadata_lv->name);
log_print("LV Pool data %s", seg_lv(seg, 0)->name);
- log_print("LV Pool chunk size %s",
- display_size(cmd, seg->chunk_size));
- log_print("LV Zero new blocks %s",
- seg->zero_new_blocks ? "yes" : "no");
}
if (inkernel && info.suspended)
diff --git a/lib/thin/thin.c b/lib/thin/thin.c
index b71760307..a1bfaaa02 100644
--- a/lib/thin/thin.c
+++ b/lib/thin/thin.c
@@ -13,6 +13,7 @@
*/
#include "lib.h"
+#include "display.h"
#include "metadata.h"
#include "segtype.h"
#include "text_export.h"
@@ -40,6 +41,20 @@ static const char *_thin_pool_name(const struct lv_segment *seg)
return seg->segtype->name;
}
+static void _thin_pool_display(const struct lv_segment *seg)
+{
+ log_print(" Chunk size\t\t%s",
+ display_size(seg->lv->vg->cmd, seg->chunk_size));
+ log_print(" Discards\t\t%s", get_pool_discards_name(seg->discards));
+ log_print(" Thin count\t\t%u",
+ dm_list_size(&seg->lv->segs_using_this_lv));
+ log_print(" Transaction ID\t%" PRIu64, seg->transaction_id);
+ log_print(" Zero new blocks\t%s",
+ seg->zero_new_blocks ? "yes" : "no");
+
+ log_print(" ");
+}
+
static int _thin_pool_add_message(struct lv_segment *seg,
const char *key,
const struct dm_config_node *sn)
@@ -439,6 +454,13 @@ static const char *_thin_name(const struct lv_segment *seg)
return seg->segtype->name;
}
+static void _thin_display(const struct lv_segment *seg)
+{
+ log_print(" Device ID\t\t%u", seg->device_id);
+
+ log_print(" ");
+}
+
static int _thin_text_import(struct lv_segment *seg,
const struct dm_config_node *sn,
struct dm_hash_table *pv_hash __attribute__((unused)))
@@ -699,6 +721,7 @@ static void _thin_destroy(struct segment_type *segtype)
static struct segtype_handler _thin_pool_ops = {
.name = _thin_pool_name,
+ .display = _thin_pool_display,
.text_import = _thin_pool_text_import,
.text_import_area_count = _thin_pool_text_import_area_count,
.text_export = _thin_pool_text_export,
@@ -720,6 +743,7 @@ static struct segtype_handler _thin_pool_ops = {
static struct segtype_handler _thin_ops = {
.name = _thin_name,
+ .display = _thin_display,
.text_import = _thin_text_import,
.text_export = _thin_text_export,
#ifdef DEVMAPPER_SUPPORT