summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2016-12-17 21:54:51 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2016-12-18 19:12:12 +0100
commitc71fefad8d5e1d9a075553ab69791ddbf6bcb153 (patch)
treece954c02ea0e0d374d84b2194dd068c150661977
parentbdfc96cb089031c6d95dccb0ff66616efdb16783 (diff)
downloadlvm2-c71fefad8d5e1d9a075553ab69791ddbf6bcb153.tar.gz
lvs: show status for layer
When LV is external origin, show info for LV but status for -layer. So we expose more info to a user as otherwise active external origin is only linear mapping of -real layer. We do the same for i.e. old snaphost origin.
-rw-r--r--WHATS_NEW1
-rw-r--r--lib/activate/activate.c7
2 files changed, 8 insertions, 0 deletions
diff --git a/WHATS_NEW b/WHATS_NEW
index eee6e98ed..93fc93e6f 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.169 -
=====================================
+ Improve reported lvs status for active external origin volume.
Fix table load for splitted RAID LV and require explicit activation.
Always active splitted RAID LV exclusively locally.
Do not use LV RAID status bit for segment status.
diff --git a/lib/activate/activate.c b/lib/activate/activate.c
index b4c8a2c5a..c554337d8 100644
--- a/lib/activate/activate.c
+++ b/lib/activate/activate.c
@@ -784,6 +784,13 @@ int lv_info_with_seg_status(struct cmd_context *cmd,
status->info.exists = 0; /* So pool LV is not active */
}
return 1;
+ } else if (lv_is_external_origin(lv)) {
+ if (!_lv_info(cmd, lv, 0, &status->info, NULL, NULL,
+ with_open_count, with_read_ahead))
+ return_0;
+
+ (void) _lv_info(cmd, lv, 1, NULL, lv_seg, &status->seg_status, 0, 0);
+ return 1;
} else if (lv_is_origin(lv)) {
/* Query segment status for 'layered' (-real) device most of the time,
* only for merging snapshot, query its progress.