iscsi-initiator-utils/0001-unit-file-tweaks.patch
DistroBaker d450d2fe34 Merged update from upstream sources
This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/iscsi-initiator-utils.git#ddde1bdb477bb20923cebd5296438f46b05698d1
2020-11-04 22:15:53 +00:00

175 lines
5.1 KiB
Diff

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