summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlasdair Kergon <agk@redhat.com>2008-10-23 11:21:04 +0000
committerAlasdair Kergon <agk@redhat.com>2008-10-23 11:21:04 +0000
commit5752156c9ef280993f2085ad64231dd40dc6e304 (patch)
treeee460192ceec95bf53bfe325c0c5ea86b93b9520
parenta30215a530c089c6b553d81cf61d57addbe4f8da (diff)
downloadlvm2-5752156c9ef280993f2085ad64231dd40dc6e304.tar.gz
Fix temp table activation in mirror conversions not to happen in other cmds.
Fix temp table in mirror conversions to use always-present error not zero.
-rw-r--r--WHATS_NEW2
-rw-r--r--lib/metadata/lv_manip.c15
2 files changed, 9 insertions, 8 deletions
diff --git a/WHATS_NEW b/WHATS_NEW
index ba1f08e85..1f24e656e 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,7 @@
Version 2.02.42 -
===================================
+ Fix temp table activation in mirror conversions not to happen in other cmds.
+ Fix temp table in mirror conversions to use always-present error not zero.
Version 2.02.41 - 17th October 2008
===================================
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c
index 07d6d23e7..114e8e262 100644
--- a/lib/metadata/lv_manip.c
+++ b/lib/metadata/lv_manip.c
@@ -2380,30 +2380,29 @@ struct logical_volume *insert_layer_for_lv(struct cmd_context *cmd,
return NULL;
}
- if (strstr(name, "_mimagetmp")) {
- log_very_verbose("Creating transient 'zero' LV"
- " for Mirror -> mirror up-convert.");
+ if (lv_is_active(lv_where) && strstr(name, "_mimagetmp")) {
+ log_very_verbose("Creating transient LV %s for mirror conversion in VG %s.", name, lv_where->vg->name);
- segtype = get_segtype_from_string(cmd, "zero");
+ segtype = get_segtype_from_string(cmd, "error");
if (!lv_add_virtual_segment(layer_lv, 0, lv_where->le_count, segtype)) {
- log_error("Creation of intermediate layer LV failed.");
+ log_error("Creation of transient LV %s for mirror conversion in VG %s failed.", name, lv_where->vg->name);
return NULL;
}
if (!vg_write(lv_where->vg)) {
- log_error("Failed to write intermediate VG metadata");
+ log_error("Failed to write intermediate VG %s metadata for mirror conversion.", lv_where->vg->name);
return NULL;
}
if (!vg_commit(lv_where->vg)) {
- log_error("Failed to commit intermediate VG metadata");
+ log_error("Failed to commit intermediate VG %s metadata for mirror conversion.", lv_where->vg->name);
vg_revert(lv_where->vg);
return NULL;
}
if (!activate_lv(cmd, layer_lv)) {
- log_error("Failed to resume intermediate 'zero' LV, %s", name);
+ log_error("Failed to resume transient error LV %s for mirror conversion in VG %s.", name, lv_where->vg->name);
return NULL;
}
}