Version 2.02.46 -
================================
+ Use lock query instead of activate_lv_excl.
Enable online resizing of mirrors.
Use suspend with flush when device size was changed during table preload.
Introduce CLVMD_CMD_LOCK_QUERY command for clvmd.
return 0;
}
- /*
- * Check for confirmation prompts in the following cases:
- * 1) Clustered VG, and some remote nodes have the LV active
- * 2) Non-clustered VG, but LV active locally
- */
- if (vg_is_clustered(vg) && !activate_lv_excl(cmd, lv) &&
- (force == PROMPT)) {
- if (yes_no_prompt("Logical volume \"%s\" is active on other "
- "cluster nodes. Really remove? [y/n]: ",
- lv->name) == 'n') {
- log_print("Logical volume \"%s\" not removed",
- lv->name);
- return 0;
- }
- } else if (info.exists && (force == PROMPT)) {
- if (yes_no_prompt("Do you really want to remove active "
- "logical volume \"%s\"? [y/n]: ",
- lv->name) == 'n') {
- log_print("Logical volume \"%s\" not removed",
- lv->name);
- return 0;
- }
+ if (lv_is_active(lv) && (force == PROMPT) &&
+ yes_no_prompt("Do you really want to remove active "
+ "%slogical volume %s? [y/n]: ",
+ vg_is_clustered(vg) ? "clustered " : "",
+ lv->name) == 'n') {
+ log_print("Logical volume %s not removed", lv->name);
+ return 0;
}
}
if (info.open_count) {
log_error("Can't resync open logical volume \"%s\"",
lv->name);
- return ECMD_FAILED;
+ return 0;
}
if (info.exists) {
lv->name) == 'n') {
log_print("Logical volume \"%s\" not resynced",
lv->name);
- return ECMD_FAILED;
+ return 0;
}
if (sigint_caught())
- return ECMD_FAILED;
+ return 0;
active = 1;
}
monitored = dmeventd_monitor_mode();
init_dmeventd_monitor(0);
- if (vg_is_clustered(lv->vg) && !activate_lv_excl(cmd, lv)) {
- log_error("Can't get exclusive access to clustered volume %s",
- lv->name);
- return ECMD_FAILED;
- }
-
if (!deactivate_lv(cmd, lv)) {
log_error("Unable to deactivate %s for resync", lv->name);
return 0;
}
+ if (vg_is_clustered(lv->vg) && lv_is_active(lv)) {
+ log_error("Can't get exclusive access to clustered volume %s",
+ lv->name);
+ return 0;
+ }
+
init_dmeventd_monitor(monitored);
log_lv = first_seg(lv)->log_lv;