File systemd-udevadm-settle-for-lvm2-activation-net.servi.patch of Package lvm2.1005

From e7feaa645cc6262247bf6d30a6d1d8af69324be3 Mon Sep 17 00:00:00 2001
From: Liuhua Wang <lwang@suse.com>
Date: Mon, 28 Sep 2015 16:11:26 +0800
Subject: [PATCH] systemd: udevadm settle for lvm2-activation-net.service

In case lvmetad is not used, we need to wait for udev to complete
after net-attached storage is initialized (after iscsi/fcoe service).
N.B. This also requires the storage to be attached synchronously
in the kernel itself.

References: bnc#946651
commit: a03609dee4770f2453b1f5cb851e2169c539b1e4
---
 scripts/lvm2_activation_generator_systemd_red_hat.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/scripts/lvm2_activation_generator_systemd_red_hat.c b/scripts/lvm2_activation_generator_systemd_red_hat.c
index ea41d92..5eacd4f 100644
--- a/scripts/lvm2_activation_generator_systemd_red_hat.c
+++ b/scripts/lvm2_activation_generator_systemd_red_hat.c
@@ -130,21 +130,23 @@ static int generate_unit(const char *dir, int unit)
 
    if (unit == UNIT_NET) {
        fputs("After=iscsi.service fcoe.service\n"
-             "Before=remote-fs.target shutdown.target\n", f);
+             "Before=remote-fs.target shutdown.target\n\n"
+             "[Service]\n"
+             "ExecStartPre=/usr/bin/udevadm settle\n", f);
    } else {
        if (unit == UNIT_EARLY) {
-           fputs("After=systemd-udev-settle.service\n", f);
-           fputs("Before=cryptsetup.target\n", f);
+           fputs("After=systemd-udev-settle.service\n"
+                 "Before=cryptsetup.target\n", f);
        } else
            fputs("After=lvm2-activation-early.service cryptsetup.target\n", f);
 
        fputs("Before=local-fs.target shutdown.target\n"
-             "Wants=systemd-udev-settle.service\n\n", f);
+             "Wants=systemd-udev-settle.service\n\n"
+             "[Service]\n", f);
    }
 
-   fputs("[Service]\n"
-	      "ExecStart=/sbin/lvm vgchange -aay --sysinit\n"
-	      "Type=oneshot\n", f);
+    fputs("ExecStart=/sbin/lvm vgchange -aay --sysinit\n"
+        "Type=oneshot\n", f);
 
 	if (fclose(f) < 0) {
         kmsg("LVM: Failed to write unit file %s: %m.\n", unit_name);
-- 
1.8.4.5

openSUSE Build Service is sponsored by