mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-18 10:04:20 +03:00
dmeventd: (workaround) fix mirror DSO to work with lvmetad
Automatic dmeventd repair of mirrors with active lvmetad configured (mirror_image_fault_policy = "allocate") fails because the lvscan run before the repair in the mirror DSO does not update the lvmetad cache properly thus "lvconvert --repair ..." fails. Need to scan the mirror LV before and after the repair to have proper cache content after the repair finished. The cache can't be relied on or the repair will fail. Resolves: rhbz1380521
This commit is contained in:
parent
67ddc0c292
commit
76f6951c3e
@ -111,6 +111,9 @@ static int _remove_failed_devices(const char *cmd_lvscan, const char *cmd_lvconv
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!dmeventd_lvm2_run_with_lock(cmd_lvscan))
|
||||
log_warn("WARNING: Re-scan of mirrored device %s failed.", device);
|
||||
|
||||
log_info("Repair of mirrored device %s finished successfully.", device);
|
||||
|
||||
return 1;
|
||||
@ -188,7 +191,7 @@ int register_device(const char *device,
|
||||
goto_bad;
|
||||
|
||||
if (!dmeventd_lvm2_command(state->mem, state->cmd_lvconvert, sizeof(state->cmd_lvconvert),
|
||||
"lvconvert --repair --use-policies", device))
|
||||
"lvconvert --config global{use_lvmetad = 0}' --repair --use-policies", device))
|
||||
goto_bad;
|
||||
|
||||
*user = state;
|
||||
|
Loading…
x
Reference in New Issue
Block a user