261a1a1
From fd538429be486d057b092e3b9c148add2c5ea9c2 Mon Sep 17 00:00:00 2001
fdf0455
From: rpm-build <rpm-build>
fdf0455
Date: Tue, 4 Jun 2019 13:23:32 -0700
261a1a1
Subject: [PATCH 1/1] unit file tweaks
fdf0455
fdf0455
---
ddde1bd
 etc/systemd/iscsi-mark-root-nodes  | 34 ++++++++++++++++++++++++++++++
ddde1bd
 etc/systemd/iscsi-onboot.service   | 15 +++++++++++++
ddde1bd
 etc/systemd/iscsi-shutdown.service | 15 +++++++++++++
ddde1bd
 etc/systemd/iscsi.service          | 16 +++++++-------
ddde1bd
 etc/systemd/iscsid.service         |  3 +--
ddde1bd
 etc/systemd/iscsiuio.service       |  4 +---
ddde1bd
 6 files changed, 74 insertions(+), 13 deletions(-)
fdf0455
 create mode 100755 etc/systemd/iscsi-mark-root-nodes
fdf0455
 create mode 100644 etc/systemd/iscsi-onboot.service
fdf0455
 create mode 100644 etc/systemd/iscsi-shutdown.service
fdf0455
fdf0455
diff --git a/etc/systemd/iscsi-mark-root-nodes b/etc/systemd/iscsi-mark-root-nodes
fdf0455
new file mode 100755
ddde1bd
index 0000000..9d48805
fdf0455
--- /dev/null
fdf0455
+++ b/etc/systemd/iscsi-mark-root-nodes
ddde1bd
@@ -0,0 +1,34 @@
fdf0455
+#!/bin/bash
fdf0455
+
fdf0455
+ISCSIADM=/usr/sbin/iscsiadm
fdf0455
+start_iscsid=0
fdf0455
+start_iscsiuio=0
fdf0455
+
fdf0455
+while read t num p target flash; do
fdf0455
+  # strip tag number from portal, keep "ip:port"
fdf0455
+  portal=${p%,*}
fdf0455
+  transport=${t%:}
fdf0455
+
fdf0455
+  # use session number to find the iface name in use
fdf0455
+  num=${num#[}; num=${num%]}
fdf0455
+  iface=$(iscsiadm -m session -r $num | grep iface.iscsi_ifacename | cut -d= -f2)
fdf0455
+
fdf0455
+  $ISCSIADM -m node -p $portal -T $target -I $iface -o update -n node.startup -v onboot
fdf0455
+
fdf0455
+  start_iscsid=1
fdf0455
+
fdf0455
+  if [ "$transport" = bnx2i ] || [ "$transport" = qedi ]; then
fdf0455
+    start_iscsiuio=1
fdf0455
+  fi
fdf0455
+done < <( $ISCSIADM -m session )
fdf0455
+
fdf0455
+# force iscsid and iscsiuio to start if needed for
fdf0455
+# recovering sessions created in the initrd
fdf0455
+
fdf0455
+if [ "$start_iscsid" -eq 1 ]; then
fdf0455
+  systemctl --no-block start iscsid.service
ddde1bd
+fi
ddde1bd
+if [ "$start_iscsiuio" -eq 1 ]; then
ddde1bd
+  systemctl --no-block start iscsiuio.service
ddde1bd
+fi
ddde1bd
+
fdf0455
diff --git a/etc/systemd/iscsi-onboot.service b/etc/systemd/iscsi-onboot.service
fdf0455
new file mode 100644
fdf0455
index 0000000..42ced68
fdf0455
--- /dev/null
fdf0455
+++ b/etc/systemd/iscsi-onboot.service
fdf0455
@@ -0,0 +1,15 @@
fdf0455
+[Unit]
fdf0455
+Description=Special handling of early boot iSCSI sessions
fdf0455
+Documentation=man:iscsiadm(8) man:iscsid(8)
fdf0455
+DefaultDependencies=no
fdf0455
+RefuseManualStart=true
fdf0455
+Before=iscsi.service
fdf0455
+After=systemd-remount-fs.service
fdf0455
+ConditionDirectoryNotEmpty=/sys/class/iscsi_session
fdf0455
+
fdf0455
+[Service]
fdf0455
+Type=oneshot
fdf0455
+ExecStart=-/usr/libexec/iscsi-mark-root-nodes
fdf0455
+
fdf0455
+[Install]
fdf0455
+WantedBy=sysinit.target
fdf0455
diff --git a/etc/systemd/iscsi-shutdown.service b/etc/systemd/iscsi-shutdown.service
fdf0455
new file mode 100644
ddde1bd
index 0000000..caee933
fdf0455
--- /dev/null
fdf0455
+++ b/etc/systemd/iscsi-shutdown.service
ddde1bd
@@ -0,0 +1,15 @@
fdf0455
+[Unit]
fdf0455
+Description=Logout off all iSCSI sessions on shutdown
fdf0455
+Documentation=man:iscsid(8) man:iscsiadm(8)
fdf0455
+DefaultDependencies=no
fdf0455
+Conflicts=shutdown.target
fdf0455
+After=systemd-remount-fs.service network.target iscsid.service iscsiuio.service
fdf0455
+Before=remote-fs-pre.target
fdf0455
+Wants=remote-fs-pre.target
fdf0455
+RefuseManualStop=yes
fdf0455
+
fdf0455
+[Service]
fdf0455
+Type=oneshot
fdf0455
+RemainAfterExit=true
fdf0455
+ExecStart=-/usr/bin/true
ddde1bd
+ExecStop=-/usr/sbin/iscsiadm -m node --logoutall=all
fdf0455
diff --git a/etc/systemd/iscsi.service b/etc/systemd/iscsi.service
261a1a1
index 5e394b9..175cb2c 100644
fdf0455
--- a/etc/systemd/iscsi.service
fdf0455
+++ b/etc/systemd/iscsi.service
ddde1bd
@@ -1,18 +1,18 @@
fdf0455
 [Unit]
fdf0455
 Description=Login and scanning of iSCSI devices
fdf0455
 Documentation=man:iscsiadm(8) man:iscsid(8)
ddde1bd
-Before=remote-fs.target
261a1a1
-After=network-online.target iscsid.service
ddde1bd
-Requires=iscsid.socket iscsi-init.service
261a1a1
-Wants=network-online.target
fdf0455
+DefaultDependencies=no
ddde1bd
+Before=remote-fs-pre.target
ddde1bd
+After=network.target network-online.target iscsid.service iscsiuio.service systemd-remount-fs.service
fdf0455
+Wants=remote-fs-pre.target iscsi-shutdown.service
fdf0455
+ConditionDirectoryNotEmpty=/var/lib/iscsi/nodes
fdf0455
 
fdf0455
 [Service]
fdf0455
 Type=oneshot
261a1a1
-ExecStart=/sbin/iscsiadm -m node --loginall=automatic -W
fdf0455
-ExecStop=/sbin/iscsiadm -m node --logoutall=automatic
fdf0455
-ExecStop=/sbin/iscsiadm -m node --logoutall=manual
ddde1bd
-SuccessExitStatus=21 15
ddde1bd
 RemainAfterExit=true
fdf0455
+ExecStart=-/usr/sbin/iscsiadm -m node --loginall=automatic
fdf0455
+ExecReload=-/usr/sbin/iscsiadm -m node --loginall=automatic
ddde1bd
+SuccessExitStatus=21
fdf0455
 
ddde1bd
 [Install]
ddde1bd
 WantedBy=remote-fs.target
fdf0455
diff --git a/etc/systemd/iscsid.service b/etc/systemd/iscsid.service
261a1a1
index 3fd7dd3..324c593 100644
fdf0455
--- a/etc/systemd/iscsid.service
fdf0455
+++ b/etc/systemd/iscsid.service
261a1a1
@@ -4,13 +4,12 @@ Documentation=man:iscsid(8) man:iscsiuio(8) man:iscsiadm(8)
fdf0455
 DefaultDependencies=no
261a1a1
 After=network-online.target iscsiuio.service iscsi-init.service
fdf0455
 Before=remote-fs-pre.target
ddde1bd
-Wants=remote-fs-pre.target
261a1a1
 Requires=iscsi-init.service
ddde1bd
 
fdf0455
 [Service]
fdf0455
 Type=notify
fdf0455
 NotifyAccess=main
fdf0455
-ExecStart=/sbin/iscsid -f
fdf0455
+ExecStart=/usr/sbin/iscsid -f
fdf0455
 KillMode=mixed
fdf0455
 Restart=on-failure
fdf0455
 
fdf0455
diff --git a/etc/systemd/iscsiuio.service b/etc/systemd/iscsiuio.service
ddde1bd
index 923e019..fc0be93 100644
fdf0455
--- a/etc/systemd/iscsiuio.service
fdf0455
+++ b/etc/systemd/iscsiuio.service
ddde1bd
@@ -2,17 +2,15 @@
ddde1bd
 Description=iSCSI UserSpace I/O driver
ddde1bd
 Documentation=man:iscsiuio(8)
ddde1bd
 DefaultDependencies=no
ddde1bd
-Conflicts=shutdown.target
ddde1bd
 Requires=iscsid.service
ddde1bd
 BindTo=iscsid.service
ddde1bd
 After=network.target
ddde1bd
 Before=remote-fs-pre.target iscsid.service
ddde1bd
-Wants=remote-fs-pre.target
ddde1bd
 
fdf0455
 [Service]
fdf0455
 Type=notify
fdf0455
 NotifyAccess=main
fdf0455
-ExecStart=/sbin/iscsiuio -f
fdf0455
+ExecStart=/usr/sbin/iscsiuio -f
fdf0455
 KillMode=mixed
fdf0455
 Restart=on-failure
fdf0455
 
fdf0455
-- 
261a1a1
2.26.3
fdf0455