1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-22 17:35:59 +03:00

thin: restore conversion to raid

Since commit  1bc546269a we've disabled
coversion of raid. This however already got fixed, so reenable
commands like:  'lvconvert --type raid1 vg/pool_tdata'.
This commit is contained in:
Zdenek Kabelac 2017-06-19 23:11:11 +02:00
parent 9e9163618a
commit 19cc03fa52
2 changed files with 7 additions and 15 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.172 - Version 2.02.172 -
=============================== ===============================
Reenable conversion of data and metadata thin-pool volumes to raid.
Improve raid status reporting with lvs. Improve raid status reporting with lvs.
No longer necessary to '--force' a repair for RAID1 No longer necessary to '--force' a repair for RAID1
Linear to RAID1 upconverts now use "recover" sync action, not "resync". Linear to RAID1 upconverts now use "recover" sync action, not "resync".

View File

@ -2552,14 +2552,6 @@ static int _raid_add_images_without_commit(struct logical_volume *lv,
return 0; return 0;
} }
if (lv_is_active(lv_lock_holder(lv)) &&
(old_count == 1) &&
(lv_is_thin_pool_data(lv) || lv_is_thin_pool_metadata(lv))) {
log_error("Can't add image to active thin pool LV %s yet. Deactivate first.",
display_lvname(lv));
return 0;
}
if (!archive(lv->vg)) if (!archive(lv->vg))
return_0; return_0;
@ -6278,6 +6270,12 @@ int lv_raid_convert(struct logical_volume *lv,
log_error("%s must be active to perform this operation.", log_error("%s must be active to perform this operation.",
display_lvname(lv)); display_lvname(lv));
return 0; return 0;
} else if (vg_is_clustered(lv->vg) &&
!lv_is_active_exclusive_locally(lv_lock_holder(lv))) {
/* In clustered VGs, the LV must be active on this node exclusively. */
log_error("%s must be active exclusive locally to "
"perform this operation.", display_lvname(lv));
return 0;
} }
new_segtype = new_segtype ? : seg->segtype; new_segtype = new_segtype ? : seg->segtype;
@ -6406,13 +6404,6 @@ int lv_raid_convert(struct logical_volume *lv,
(segtype_is_striped_target(new_segtype) && (segtype_is_striped_target(new_segtype) &&
(new_stripes == 1)) ? SEG_TYPE_NAME_LINEAR : new_segtype->name); (new_stripes == 1)) ? SEG_TYPE_NAME_LINEAR : new_segtype->name);
/* In clustered VGs, the LV must be active on this node exclusively. */
if (vg_is_clustered(lv->vg) && !lv_is_active_exclusive_locally(lv)) {
log_error("%s must be active exclusive locally to "
"perform this operation.", display_lvname(lv));
return 0;
}
/* LV must be in sync. */ /* LV must be in sync. */
if (!_raid_in_sync(lv)) { if (!_raid_in_sync(lv)) {
log_error("Unable to convert %s while it is not in-sync.", log_error("Unable to convert %s while it is not in-sync.",