mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-30 01:47:56 +03:00
integrity: skip calling add when removing images
When lvconvert is used to remove raid images, we can skip calling lv_add_integrity_to_raid(), which finds nothing to do, but the the blocksize validation would be called unnecessarily and trigger spurious errors.
This commit is contained in:
parent
7b04ed07ba
commit
ae029fcced
@ -1319,6 +1319,7 @@ static int _raid4_conversion_supported(struct logical_volume *lv, struct lvconve
|
||||
static int _lvconvert_raid(struct logical_volume *lv, struct lvconvert_params *lp)
|
||||
{
|
||||
int image_count = 0;
|
||||
int images_reduced = 0;
|
||||
struct cmd_context *cmd = lv->vg->cmd;
|
||||
struct lv_segment *seg = first_seg(lv);
|
||||
|
||||
@ -1357,6 +1358,8 @@ static int _lvconvert_raid(struct logical_volume *lv, struct lvconvert_params *l
|
||||
else
|
||||
image_count = lp->mirrors + 1;
|
||||
|
||||
images_reduced = (image_count < lv_raid_image_count(lv));
|
||||
|
||||
if (image_count < 1) {
|
||||
log_error("Unable to %s images by specified amount.",
|
||||
lp->keep_mimages ? "split" : "reduce");
|
||||
@ -1400,7 +1403,7 @@ static int _lvconvert_raid(struct logical_volume *lv, struct lvconvert_params *l
|
||||
lp->region_size : seg->region_size , lp->pvh))
|
||||
return_0;
|
||||
|
||||
if (lv_raid_has_integrity(lv)) {
|
||||
if (lv_raid_has_integrity(lv) && !images_reduced) {
|
||||
struct integrity_settings *isettings = NULL;
|
||||
if (!lv_get_raid_integrity_settings(lv, &isettings))
|
||||
return_0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user