summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Rajnoha <prajnoha@redhat.com>2016-03-01 15:22:36 +0100
committerPeter Rajnoha <prajnoha@redhat.com>2016-03-03 11:26:51 +0100
commit962423142545f0b53c4d79203db40583771a1b13 (patch)
tree6c807faad2acf91f84e1e5dfb8d60eb652540119
parentfd853604d1dd4fc92454b3d20c2bac31c70bdbb3 (diff)
downloadlvm2-962423142545f0b53c4d79203db40583771a1b13.tar.gz
metadata: add lv_is_historical fn to test if the LV is historical one
-rw-r--r--lib/metadata/lv.c5
-rw-r--r--lib/metadata/metadata-exported.h2
-rw-r--r--lib/metadata/snapshot_manip.c3
3 files changed, 10 insertions, 0 deletions
diff --git a/lib/metadata/lv.c b/lib/metadata/lv.c
index 459de6e79..a5144e9a4 100644
--- a/lib/metadata/lv.c
+++ b/lib/metadata/lv.c
@@ -28,6 +28,11 @@
static struct utsname _utsname;
static int _utsinit = 0;
+int lv_is_historical(const struct logical_volume *lv)
+{
+ return lv->this_glv && lv->this_glv->is_historical;
+}
+
static struct dm_list *_format_pvsegs(struct dm_pool *mem, const struct lv_segment *seg,
int range_format, int metadata_areas_only,
int mark_hidden)
diff --git a/lib/metadata/metadata-exported.h b/lib/metadata/metadata-exported.h
index afd472373..b8699f7aa 100644
--- a/lib/metadata/metadata-exported.h
+++ b/lib/metadata/metadata-exported.h
@@ -1066,6 +1066,8 @@ int lv_is_cow_covering_origin(const struct logical_volume *lv);
/* Test if given LV is visible from user's perspective */
int lv_is_visible(const struct logical_volume *lv);
+int lv_is_historical(const struct logical_volume *lv);
+
int pv_is_in_vg(struct volume_group *vg, struct physical_volume *pv);
/* Given a cow or thin LV, return the snapshot lv_segment that uses it */
diff --git a/lib/metadata/snapshot_manip.c b/lib/metadata/snapshot_manip.c
index 5fef0019d..e8a4dc5b3 100644
--- a/lib/metadata/snapshot_manip.c
+++ b/lib/metadata/snapshot_manip.c
@@ -113,6 +113,9 @@ int lv_is_cow_covering_origin(const struct logical_volume *lv)
int lv_is_visible(const struct logical_volume *lv)
{
+ if (lv_is_historical(lv))
+ return 1;
+
if (lv->status & SNAPSHOT)
return 0;