mirror of
git://sourceware.org/git/lvm2.git
synced 2025-03-10 16:58:47 +03:00
lvconvert: Limit --corelog and --mirrorlog to mirrors.
It's an error to specify a log when the final result is not of type mirror.
This commit is contained in:
parent
7d6cf12554
commit
c55134aa48
@ -1,5 +1,6 @@
|
|||||||
Version 2.02.163 -
|
Version 2.02.163 -
|
||||||
=================================
|
=================================
|
||||||
|
Limit use of --corelog and --mirrorlog to mirrors in lvconvert.
|
||||||
Do not refresh whole cmd context if profile dropped after processing LVM cmd.
|
Do not refresh whole cmd context if profile dropped after processing LVM cmd.
|
||||||
Support straightforward lvconvert between striped and raid4 LVs.
|
Support straightforward lvconvert between striped and raid4 LVs.
|
||||||
Support straightforward lvconvert between raid1 and mirror LVs.
|
Support straightforward lvconvert between raid1 and mirror LVs.
|
||||||
|
@ -1700,6 +1700,11 @@ static int _lvconvert_mirrors(struct cmd_context *cmd,
|
|||||||
uint32_t new_mimage_count;
|
uint32_t new_mimage_count;
|
||||||
uint32_t new_log_count;
|
uint32_t new_log_count;
|
||||||
|
|
||||||
|
if (*lp->type_str && strcmp(lp->type_str, SEG_TYPE_NAME_MIRROR)) {
|
||||||
|
log_error("--corelog and --mirrorlog is only compatible with --type mirror");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (lp->merge_mirror) {
|
if (lp->merge_mirror) {
|
||||||
log_error("Unable to merge mirror images"
|
log_error("Unable to merge mirror images"
|
||||||
"of segment type 'mirror'.");
|
"of segment type 'mirror'.");
|
||||||
@ -1888,6 +1893,11 @@ static int _lvconvert_raid(struct logical_volume *lv, struct lvconvert_params *l
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((lp->corelog || lp->mirrorlog) && strcmp(lp->type_str, SEG_TYPE_NAME_MIRROR)) {
|
||||||
|
log_error("--corelog and --mirrorlog is only compatible with --type mirror");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (lp->merge_mirror)
|
if (lp->merge_mirror)
|
||||||
return lv_raid_merge(lv);
|
return lv_raid_merge(lv);
|
||||||
|
|
||||||
@ -1898,7 +1908,8 @@ static int _lvconvert_raid(struct logical_volume *lv, struct lvconvert_params *l
|
|||||||
return lv_raid_split(lv, lp->lv_split_name, image_count, lp->pvh);
|
return lv_raid_split(lv, lp->lv_split_name, image_count, lp->pvh);
|
||||||
|
|
||||||
if (lp->mirrors_supplied) {
|
if (lp->mirrors_supplied) {
|
||||||
if (!*lp->type_str || !strcmp(lp->type_str, SEG_TYPE_NAME_RAID1) || !strcmp(lp->type_str, SEG_TYPE_NAME_LINEAR)) {
|
if (!*lp->type_str || !strcmp(lp->type_str, SEG_TYPE_NAME_RAID1) || !strcmp(lp->type_str, SEG_TYPE_NAME_LINEAR) ||
|
||||||
|
(!strcmp(lp->type_str, SEG_TYPE_NAME_STRIPED) && image_count == 1)) {
|
||||||
if (!lv_raid_change_image_count(lv, image_count, lp->pvh))
|
if (!lv_raid_change_image_count(lv, image_count, lp->pvh))
|
||||||
return_0;
|
return_0;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user