[lvm-devel] [PATCH]: Mirror: warn when activating mirror and !ignore_lvm_mirrors
Zdenek Kabelac
zkabelac at redhat.com
Wed Oct 23 07:52:07 UTC 2013
Dne 23.10.2013 01:41, Jonathan Brassow napsal(a):
> Not sure if I care for the static variable, but I don't want it printed
> for every mirror on every command that activates...
>
> brassow
>
>
> Mirror: Print warning on activation if mirrors exists and !ignore_lvm_mirrors
>
> Print a warning if mirrors are present and config file settings indicate
> that they can be scanned for labels. (A process that has the potential
> to block indefinitely if it happens just after a failure.)
>
> Index: lvm2/lib/activate/activate.c
> ===================================================================
> --- lvm2.orig/lib/activate/activate.c
> +++ lvm2/lib/activate/activate.c
> @@ -1077,9 +1077,18 @@ static int _lv_open_count(struct cmd_con
>
> static int _lv_activate_lv(struct logical_volume *lv, struct lv_activate_opts *laopts)
> {
> + static int mirror_warning_printed = 0;
> int r;
> struct dev_manager *dm;
>
> + if (lv_is_mirrored(lv) && !lv_is_raid(lv) &&
> + !mirror_warning_printed && !ignore_lvm_mirrors()) {
> + log_print("Scanning mirrors for LVM labels is enabled.\n"
> + " It is possible for this to cause I/O hangs and stuck LVM processes.\n"
> + " See 'ignore_lvm_mirrors' in the LVM configuation file for details.");
> + mirror_warning_printed = 1;
> + }
> +
> if (!(dm = dev_manager_create(lv->vg->cmd, lv->vg->name, (lv->status & PVMOVE) ? 0 : 1)))
We should probably introduce log_print_once()
(Just like we have log_error_once())
Zdenek
More information about the lvm-devel
mailing list