diff --git a/lib/metadata/mirror.c b/lib/metadata/mirror.c index 97899e56e..5e3c25948 100644 --- a/lib/metadata/mirror.c +++ b/lib/metadata/mirror.c @@ -198,6 +198,7 @@ int remove_mirror_images(struct lv_segment *mirrored_seg, uint32_t num_mirrors, extents = lv1->le_count; _move_lv_segments(mirrored_seg->lv, lv1); mirrored_seg->lv->status &= ~MIRRORED; + mirrored_seg->lv->status &= ~MIRROR_NOTSYNCED; remove_log = 1; /* Replace mirror with error segment */ segtype = get_segtype_from_string(mirrored_seg->lv->vg->cmd, "error"); diff --git a/tools/lvconvert.c b/tools/lvconvert.c index 76a7bfb54..881627823 100644 --- a/tools/lvconvert.c +++ b/tools/lvconvert.c @@ -418,8 +418,11 @@ static int lvconvert_mirrors(struct cmd_context * cmd, struct logical_volume * l if (sync_percent >= 100.0) init_mirror_in_sync(1); - else + else { + /* A full resync will take place */ + lv->status &= ~MIRROR_NOTSYNCED; init_mirror_in_sync(0); + } if (!remove_mirror_images(seg, lp->mirrors, lp->pv_count ?