diff --git a/WHATS_NEW b/WHATS_NEW index 893b85195..e2eab96e8 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.89 - ================================== + Replace incomplete pvmove activation failure recovery code with a message. Abort if _finish_pvmove suspend_lvs fails instead of cleaning up incompletely. Change suspend_lvs to call vg_revert internally. Change vg_revert to void and remove superfluous calls after failed vg_commit. diff --git a/tools/pvmove.c b/tools/pvmove.c index df493c4d2..e603086f6 100644 --- a/tools/pvmove.c +++ b/tools/pvmove.c @@ -390,22 +390,9 @@ static int _update_metadata(struct cmd_context *cmd, struct volume_group *vg, } /* - * Nothing changed yet, try to revert pvmove. - * FIXME This error path is incomplete and unsafe. + * FIXME Run --abort internally here. */ - log_error("Temporary pvmove mirror activation failed."); - - /* Ensure that temporary mrror is deactivate even on other nodes. */ - /* FIXME Unsafe to proceed if this fails without checking explicitly that no pvmove LVs are still active */ - (void)deactivate_lv(cmd, lv_mirr); - - /* Revert metadata */ - /* FIXME Use --abort code instead? */ - if (!_detach_pvmove_mirror(cmd, lv_mirr) || - !lv_remove(lv_mirr) || - !vg_write(vg) || !vg_commit(vg)) - log_error("ABORTING: Restoring original configuration " - "before pvmove failed. Run pvmove --abort."); + log_error("ABORTING: Temporary pvmove mirror activation failed. Run pvmove --abort."); goto_out; } }