summaryrefslogtreecommitdiffstats
path: root/lib/metadata/merge.c
diff options
context:
space:
mode:
authorAlasdair Kergon <agk@redhat.com>2007-11-07 16:33:12 +0000
committerAlasdair Kergon <agk@redhat.com>2007-11-07 16:33:12 +0000
commit19c865437a8c661045e61389dd6953047e2b9c82 (patch)
tree99b5b699a5c743ba37bb3b25a0b8252a2f74457f /lib/metadata/merge.c
parent00a7c302ead32c0c38b7204db183d1b4388067dd (diff)
downloadlvm2-19c865437a8c661045e61389dd6953047e2b9c82.tar.gz
lvm2-19c865437a8c661045e61389dd6953047e2b9c82.tar.xz
lvm2-19c865437a8c661045e61389dd6953047e2b9c82.zip
Prevent lvconvert -s from using same LV as origin and snapshot.
Diffstat (limited to 'lib/metadata/merge.c')
-rw-r--r--lib/metadata/merge.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/metadata/merge.c b/lib/metadata/merge.c
index 8b65fad1..eb88ad73 100644
--- a/lib/metadata/merge.c
+++ b/lib/metadata/merge.c
@@ -119,6 +119,15 @@ int check_lv_segments(struct logical_volume *lv, int complete_vg)
}
}
+ if (seg_is_snapshot(seg)) {
+ if (seg->cow && seg->cow == seg->origin) {
+ log_error("LV %s: segment %u has same LV %s for "
+ "both origin and snapshot",
+ lv->name, seg_count, seg->cow->name);
+ r = 0;
+ }
+ }
+
for (s = 0; s < seg->area_count; s++) {
if (seg_type(seg, s) == AREA_UNASSIGNED) {
log_error("LV %s: segment %u has unassigned "