1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-01-02 01:18:26 +03:00

Keep exclusive activation in pvmove if LV is already active.

Pvmove should never try to downgrade exclusive lock
for LVs.

This allows pvmove to work again for exclusive activated LVs.
This commit is contained in:
Milan Broz 2012-03-26 20:33:40 +00:00
parent dcd90bc501
commit ddb31b62e5
3 changed files with 3 additions and 2 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.96 - Version 2.02.96 -
================================ ================================
Keep exclusive activation in pvmove if LV is already active.
Disallow pvmove for exclusive LV if some affected LVs are not exclusively activated. Disallow pvmove for exclusive LV if some affected LVs are not exclusively activated.
Remove unused and wrongly set cluster VG flag from clvmd lock query command. Remove unused and wrongly set cluster VG flag from clvmd lock query command.
Fix pvmove for exclusively activated LV pvmove in clustered VG. (2.02.86) Fix pvmove for exclusively activated LV pvmove in clustered VG. (2.02.86)

View File

@ -574,7 +574,7 @@ int activate_lvs(struct cmd_context *cmd, struct dm_list *lvs, unsigned exclusiv
struct lv_list *lvl; struct lv_list *lvl;
dm_list_iterate_items(lvl, lvs) { dm_list_iterate_items(lvl, lvs) {
if (!exclusive) { if (!exclusive && !lv_is_active_exclusive(lvl->lv)) {
if (!activate_lv(cmd, lvl->lv)) { if (!activate_lv(cmd, lvl->lv)) {
log_error("Failed to activate %s", lvl->lv->name); log_error("Failed to activate %s", lvl->lv->name);
return 0; return 0;

View File

@ -296,7 +296,7 @@ static int _activate_lv(struct cmd_context *cmd, struct logical_volume *lv_mirr,
{ {
int r = 0; int r = 0;
if (exclusive) if (exclusive || lv_is_active_exclusive(lv_mirr))
r = activate_lv_excl(cmd, lv_mirr); r = activate_lv_excl(cmd, lv_mirr);
else else
r = activate_lv(cmd, lv_mirr); r = activate_lv(cmd, lv_mirr);