import iscsi-initiator-utils-6.2.0.877-1.gitf71581b.el8

This commit is contained in:
CentOS Sources 2019-11-05 16:27:20 -05:00 committed by Andrew Lukoshko
parent b3152b4b4a
commit a56167bc10
25 changed files with 422 additions and 862 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/open-iscsi-f3c8e90.tar.gz
SOURCES/open-iscsi-f71581b.tar.gz

View File

@ -1 +1 @@
fdf8ac2fc45f493bdc005bb6739406b65126b31f SOURCES/open-iscsi-f3c8e90.tar.gz
3d3234035cc7884aa512161e06be6737ade52077 SOURCES/open-iscsi-f71581b.tar.gz

View File

@ -0,0 +1,123 @@
From f8e7499e9f69465668fc6e5e7bcfb9ce09e8a457 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Wed, 5 Jun 2019 09:08:39 -0700
Subject: [PATCH] Coverity scan fixes
---
iscsiuio/src/unix/libs/qedi.c | 2 +-
iscsiuio/src/unix/main.c | 12 ++++++++++--
libopeniscsiusr/idbm.c | 11 +++++------
usr/idbm.c | 10 ++++------
usr/iscsid.c | 2 +-
5 files changed, 21 insertions(+), 16 deletions(-)
diff --git a/iscsiuio/src/unix/libs/qedi.c b/iscsiuio/src/unix/libs/qedi.c
index b7595d5..47300b0 100644
--- a/iscsiuio/src/unix/libs/qedi.c
+++ b/iscsiuio/src/unix/libs/qedi.c
@@ -1023,7 +1023,7 @@ static int qedi_read(nic_t *nic, packet_t *pkt)
LOG_DEBUG(PFX "%s:hw_prod %d bd_prod %d, rx_pkt_idx %d, rxlen %d",
nic->log_name, hw_prod, bd_prod, rx_bd->rx_pkt_index, len);
- LOG_DEBUG(PFX "%s: sw_con %d bd_cons %d num BD %d",
+ LOG_DEBUG(PFX "%s: sw_con %d bd_cons %d num BD %lu",
nic->log_name, sw_cons, bd_cons, QEDI_NUM_RX_BD);
if (bd_cons != bd_prod) {
diff --git a/iscsiuio/src/unix/main.c b/iscsiuio/src/unix/main.c
index 5168e4e..ed41931 100644
--- a/iscsiuio/src/unix/main.c
+++ b/iscsiuio/src/unix/main.c
@@ -340,7 +340,10 @@ int main(int argc, char *argv[])
/* parent: wait for child msg then exit */
close(pipefds[1]);
- read(pipefds[0], msgbuf, sizeof(msgbuf));
+ if (read(pipefds[0], msgbuf, sizeof(msgbuf)) < 0) {
+ fprintf(stderr, "ERR: Waiting for child process failed\n");
+ exit(1);
+ }
exit(0);
}
@@ -386,6 +389,9 @@ int main(int argc, char *argv[])
sigaddset(&set, SIGTERM);
sigaddset(&set, SIGUSR1);
rc = pthread_sigmask(SIG_SETMASK, &set, NULL);
+ if (rc != 0) {
+ LOG_ERR("Failed to set thread signal mask");
+ }
/* Spin off the signal handling thread */
pthread_attr_init(&attr);
@@ -415,7 +421,9 @@ int main(int argc, char *argv[])
if (!foreground) {
/* signal parent they can go away now */
close(pipefds[0]);
- write(pipefds[1], "ok\n", 3);
+ if (write(pipefds[1], "ok\n", 3) < 0) {
+ LOG_ERR("Failed to signal parent process of completed initialization");
+ }
close(pipefds[1]);
}
diff --git a/libopeniscsiusr/idbm.c b/libopeniscsiusr/idbm.c
index d020e6c..342aab5 100644
--- a/libopeniscsiusr/idbm.c
+++ b/libopeniscsiusr/idbm.c
@@ -287,12 +287,11 @@ int _idbm_lock(struct iscsi_context *ctx)
return 0;
}
- if (access(LOCK_DIR, F_OK) != 0) {
- if (mkdir(LOCK_DIR, 0660) != 0) {
- _error(ctx, "Could not open %s: %d %s", LOCK_DIR, errno,
- _strerror(errno, strerr_buff));
- return LIBISCSI_ERR_IDBM;
- }
+ if (((mkdir(LOCK_DIR, 0660) != 0) && (errno != EEXIST)) ||
+ (access(LOCK_DIR, F_OK) != 0)) {
+ _error(ctx, "Could not open %s: %d %s", LOCK_DIR, errno,
+ _strerror(errno, strerr_buff));
+ return LIBISCSI_ERR_IDBM;
}
fd = open(LOCK_FILE, O_RDWR | O_CREAT, 0666);
diff --git a/usr/idbm.c b/usr/idbm.c
index 89a6c27..a3343fe 100644
--- a/usr/idbm.c
+++ b/usr/idbm.c
@@ -1332,12 +1332,10 @@ int idbm_lock(void)
return 0;
}
- if (access(LOCK_DIR, F_OK) != 0) {
- if (mkdir(LOCK_DIR, 0660) != 0) {
- log_error("Could not open %s: %s", LOCK_DIR,
- strerror(errno));
- return ISCSI_ERR_IDBM;
- }
+ if (((mkdir(LOCK_DIR, 0660) != 0) && (errno != EEXIST)) ||
+ (access(LOCK_DIR, F_OK) != 0)) {
+ log_error("Could not open %s: %s", LOCK_DIR, strerror(errno));
+ return ISCSI_ERR_IDBM;
}
fd = open(LOCK_FILE, O_RDWR | O_CREAT, 0666);
diff --git a/usr/iscsid.c b/usr/iscsid.c
index 37c13b3..1891784 100644
--- a/usr/iscsid.c
+++ b/usr/iscsid.c
@@ -489,8 +489,8 @@ int main(int argc, char *argv[])
log_close(log_pid);
exit(ISCSI_ERR);
}
+ close(fd);
}
- close(fd);
if ((control_fd = ipc->ctldev_open()) < 0) {
log_close(log_pid);
--
2.21.0

View File

@ -0,0 +1,49 @@
From aeca36572c02a8bf314037d82c4a2625636b175a Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Mon, 3 Jun 2019 14:36:48 -0700
Subject: [PATCH] fix iscsiuio build with libsystemd
---
iscsiuio/configure.ac | 2 ++
iscsiuio/src/unix/Makefile.am | 6 ++++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/iscsiuio/configure.ac b/iscsiuio/configure.ac
index ae23078..6138e0e 100644
--- a/iscsiuio/configure.ac
+++ b/iscsiuio/configure.ac
@@ -73,6 +73,8 @@ AC_CONFIG_COMMANDS([default],[[
echo 'char *build_date;'> src/unix/build_date.h
]],[[]])
+PKG_CHECK_MODULES([LIBSYSTEMD], [libsystemd])
+
AC_PREFIX_DEFAULT()
AC_OUTPUT([Makefile
diff --git a/iscsiuio/src/unix/Makefile.am b/iscsiuio/src/unix/Makefile.am
index a989ef0..ea5f59e 100644
--- a/iscsiuio/src/unix/Makefile.am
+++ b/iscsiuio/src/unix/Makefile.am
@@ -25,7 +25,8 @@ iscsiuio_SOURCES = build_date.c \
iscsiuio_CFLAGS = $(AM_CFLAGS) \
$(LIBNL_CFLAGS) \
- -DBYTE_ORDER=@ENDIAN@
+ -DBYTE_ORDER=@ENDIAN@ \
+ $(LIBSYSTEMD_CFLAGS)
iscsiuio_LDFLAGS= $(AM_LDADD) \
-ldl \
@@ -36,6 +37,7 @@ iscsiuio_LDFLAGS= $(AM_LDADD) \
iscsiuio_LDADD = ${top_srcdir}/src/uip/lib_iscsi_uip.a \
${top_srcdir}/src/apps/dhcpc/lib_apps_dhcpc.a\
${top_srcdir}/src/apps/brcm-iscsi/lib_apps_brcm_iscsi.a \
- ${top_srcdir}/src/unix/libs/lib_iscsiuio_hw_cnic.a
+ ${top_srcdir}/src/unix/libs/lib_iscsiuio_hw_cnic.a \
+ $(LIBSYSTEMD_LIBS)
iscsiuio_YFLAGS = -d
--
2.21.0

View File

@ -0,0 +1,146 @@
From efba620a01a2c2fa57b672bced47e88f25078b00 Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build>
Date: Tue, 4 Jun 2019 13:23:32 -0700
Subject: [PATCH] service file tweaks
---
etc/systemd/iscsi-mark-root-nodes | 30 ++++++++++++++++++++++++++++++
etc/systemd/iscsi-shutdown.service | 14 ++++++++++++++
etc/systemd/iscsi.service | 23 +++++++++++++----------
etc/systemd/iscsid.service | 6 ++++--
etc/systemd/iscsiuio.service | 2 +-
5 files changed, 62 insertions(+), 13 deletions(-)
create mode 100755 etc/systemd/iscsi-mark-root-nodes
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..c693707
--- /dev/null
+++ b/etc/systemd/iscsi-mark-root-nodes
@@ -0,0 +1,30 @@
+#!/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%:}
+
+ $ISCSIADM -m node -p $portal -T $target -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-shutdown.service b/etc/systemd/iscsi-shutdown.service
new file mode 100644
index 0000000..69c1c77
--- /dev/null
+++ b/etc/systemd/iscsi-shutdown.service
@@ -0,0 +1,14 @@
+[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
+ExecStop=-/usr/sbin/iscsiadm -m node --logoutall=all
diff --git a/etc/systemd/iscsi.service b/etc/systemd/iscsi.service
index e475888..eadfcec 100644
--- a/etc/systemd/iscsi.service
+++ b/etc/systemd/iscsi.service
@@ -1,18 +1,21 @@
[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 iscsid.service
-Requires=iscsid.service
-ConditionPathExists=/etc/iscsi/initiatorname.iscsi
+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 iscsi-shutdown.service
+ConditionDirectoryNotEmpty=|/var/lib/iscsi/nodes
+ConditionDirectoryNotEmpty=|/sys/class/iscsi_session
[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
RemainAfterExit=true
+ExecStart=-/usr/libexec/iscsi-mark-root-nodes
+ExecStart=-/usr/sbin/iscsiadm -m node --loginall=automatic
+ExecReload=-/usr/sbin/iscsiadm -m node --loginall=automatic
+SuccessExitStatus=21
[Install]
-WantedBy=remote-fs.target
+WantedBy=sysinit.target
diff --git a/etc/systemd/iscsid.service b/etc/systemd/iscsid.service
index 4fef168..8d50cf0 100644
--- a/etc/systemd/iscsid.service
+++ b/etc/systemd/iscsid.service
@@ -1,14 +1,16 @@
[Unit]
Description=Open-iSCSI
-Documentation=man:iscsid(8) man:iscsiuio(8) man:iscsiadm(8)
+Documentation=man:iscsid(8) man:iscsiadm(8)
DefaultDependencies=no
+Conflicts=shutdown.target
After=network.target iscsiuio.service
Before=remote-fs-pre.target
[Service]
Type=notify
NotifyAccess=main
-ExecStart=/sbin/iscsid -f
+ExecStart=/usr/sbin/iscsid -f
+ExecStop=/usr/sbin/iscsiadm -k 0 2
KillMode=mixed
Restart=on-failure
diff --git a/etc/systemd/iscsiuio.service b/etc/systemd/iscsiuio.service
index e4d9fd0..8620cde 100644
--- a/etc/systemd/iscsiuio.service
+++ b/etc/systemd/iscsiuio.service
@@ -11,7 +11,7 @@ Before=remote-fs-pre.target iscsid.service
[Service]
Type=notify
NotifyAccess=main
-ExecStart=/sbin/iscsiuio -f
+ExecStart=/usr/sbin/iscsiuio -f
KillMode=mixed
Restart=on-failure
--
2.21.0

View File

@ -1,7 +1,7 @@
From 7ba6464018daac1b150335bb73d272761d2cbfe5 Mon Sep 17 00:00:00 2001
From bf6a05987a418e4d7eeb3a24f0912c5cfc9e533d Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Tue, 13 Aug 2013 12:39:07 -0700
Subject: [PATCH 03/32] idbw_rec_write, pick tpgt from existing record
Subject: [PATCH] idbw_rec_write, pick tpgt from existing record
On a static add (-m node -o new) without a user specified tpgt, looks
for existing new style records with tpgt before creating an old style
@ -12,7 +12,7 @@ updated new style record instead.
1 file changed, 40 insertions(+)
diff --git a/usr/idbm.c b/usr/idbm.c
index 21ff61ab2bd8..cd705fa2b033 100644
index c29cbed..00955e4 100644
--- a/usr/idbm.c
+++ b/usr/idbm.c
@@ -28,6 +28,7 @@
@ -22,8 +22,8 @@ index 21ff61ab2bd8..cd705fa2b033 100644
+#include <glob.h>
#include <sys/stat.h>
#include <sys/file.h>
@@ -163,6 +164,8 @@ static struct idbm *db;
#include <inttypes.h>
@@ -164,6 +165,8 @@ static struct idbm *db;
_n++; \
} while(0)
@ -32,7 +32,7 @@ index 21ff61ab2bd8..cd705fa2b033 100644
static void
idbm_recinfo_discovery(discovery_rec_t *r, recinfo_t *ri)
{
@@ -2077,12 +2080,49 @@ static int idbm_rec_write_old(node_rec_t *rec)
@@ -2080,12 +2083,49 @@ static int idbm_rec_write_old(node_rec_t *rec)
FILE *f;
char *portal;
int rc = 0;
@ -83,5 +83,5 @@ index 21ff61ab2bd8..cd705fa2b033 100644
rec->name, rec->conn[0].address, rec->conn[0].port);
--
2.14.4
2.21.0

View File

@ -1,93 +0,0 @@
From 33076c9c1e975ea3225923d66ae24648c0c82a7f Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Wed, 19 Dec 2012 15:07:36 -0800
Subject: [PATCH 04/32] update systemd service files, add iscsi.service for
starting sessions on boot
Signed-off-by: Chris Leech <cleech@redhat.com>
---
etc/systemd/iscsi.service | 19 +++++++++++++++++++
etc/systemd/iscsi_mark_root_nodes | 14 ++++++++++++++
etc/systemd/iscsid.service | 7 +++++--
etc/systemd/iscsid.socket | 2 +-
4 files changed, 39 insertions(+), 3 deletions(-)
create mode 100644 etc/systemd/iscsi.service
create mode 100755 etc/systemd/iscsi_mark_root_nodes
diff --git a/etc/systemd/iscsi.service b/etc/systemd/iscsi.service
new file mode 100644
index 000000000000..bbd52fd66890
--- /dev/null
+++ b/etc/systemd/iscsi.service
@@ -0,0 +1,19 @@
+[Unit]
+Description=Login and scanning of iSCSI devices
+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
+ConditionPathExists=/etc/iscsi/initiatorname.iscsi
+
+[Service]
+Type=oneshot
+RemainAfterExit=true
+ExecStart=/usr/libexec/iscsi_mark_root_nodes
+ExecStart=/sbin/iscsiadm -m node --loginall=automatic
+ExecStop=/bin/sync
+ExecStop=/sbin/iscsiadm -m node --logoutall=automatic
+
+[Install]
+WantedBy=sysinit.target
diff --git a/etc/systemd/iscsi_mark_root_nodes b/etc/systemd/iscsi_mark_root_nodes
new file mode 100755
index 000000000000..c68475c44de5
--- /dev/null
+++ b/etc/systemd/iscsi_mark_root_nodes
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+ISCSIADM=/sbin/iscsiadm
+SESSION_FILE=/run/initramfs/iscsi.sessions
+
+if [ ! -f $SESSION_FILE ] ; then
+ exit 0
+fi
+
+while read t num i target; do
+ ip=${i%:*}
+ $ISCSIADM -m node -p $ip -T $target -o update -n node.startup -v onboot
+done < $SESSION_FILE
+
diff --git a/etc/systemd/iscsid.service b/etc/systemd/iscsid.service
index 028e0b3f4e59..653dd085bbdd 100644
--- a/etc/systemd/iscsid.service
+++ b/etc/systemd/iscsid.service
@@ -1,7 +1,10 @@
[Unit]
Description=Open-iSCSI
-Documentation=man:iscsid(8) man:iscsiuio(8) man:iscsiadm(8)
-After=network.target NetworkManager-wait-online.service iscsiuio.service tgtd.service targetcli.service
+Documentation=man:iscsid(8) man:iscsiadm(8)
+DefaultDependencies=no
+Conflicts=shutdown.target
+After=network.target iscsiuio.service
+Before=remote-fs-pre.target
[Service]
Type=forking
diff --git a/etc/systemd/iscsid.socket b/etc/systemd/iscsid.socket
index 832451d7a0ce..58a8d1239996 100644
--- a/etc/systemd/iscsid.socket
+++ b/etc/systemd/iscsid.socket
@@ -1,6 +1,6 @@
[Unit]
Description=Open-iSCSI iscsid Socket
-Documentation=man:iscsid(8) man:iscsiuio(8) man:iscsiadm(8)
+Documentation=man:iscsid(8) man:iscsiadm(8)
[Socket]
ListenStream=@ISCSIADM_ABSTRACT_NAMESPACE
--
2.14.4

View File

@ -1,75 +0,0 @@
From 5dd8fc7d27204a3461b33defed1e0bb4331c7663 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Mon, 19 Aug 2013 07:18:25 -0700
Subject: [PATCH 05/32] iscsi boot related service file updates
make sure iscsid gets started if there are any boot sessions running
add reload target to fix double session problem when restarting from NM
don't rely on session list passed from initrd, never got fully implemented
---
etc/systemd/iscsi-mark-root-nodes | 13 +++++++++++++
etc/systemd/iscsi.service | 3 ++-
etc/systemd/iscsi_mark_root_nodes | 14 --------------
3 files changed, 15 insertions(+), 15 deletions(-)
create mode 100644 etc/systemd/iscsi-mark-root-nodes
delete mode 100755 etc/systemd/iscsi_mark_root_nodes
diff --git a/etc/systemd/iscsi-mark-root-nodes b/etc/systemd/iscsi-mark-root-nodes
new file mode 100644
index 000000000000..157be62b4041
--- /dev/null
+++ b/etc/systemd/iscsi-mark-root-nodes
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+ISCSIADM=/sbin/iscsiadm
+
+$ISCSIADM -m session >/dev/null 2>&1 || exit 0
+
+$ISCSIADM -m session | while read t num i target; do
+ ip=${i%:*}
+ $ISCSIADM -m node -p $ip -T $target -o update -n node.startup -v onboot
+done
+
+systemctl start iscsid.service
+
diff --git a/etc/systemd/iscsi.service b/etc/systemd/iscsi.service
index bbd52fd66890..0309e2fc9892 100644
--- a/etc/systemd/iscsi.service
+++ b/etc/systemd/iscsi.service
@@ -10,10 +10,11 @@ ConditionPathExists=/etc/iscsi/initiatorname.iscsi
[Service]
Type=oneshot
RemainAfterExit=true
-ExecStart=/usr/libexec/iscsi_mark_root_nodes
+ExecStart=/usr/libexec/iscsi-mark-root-nodes
ExecStart=/sbin/iscsiadm -m node --loginall=automatic
ExecStop=/bin/sync
ExecStop=/sbin/iscsiadm -m node --logoutall=automatic
+ExecReload=/sbin/iscsiadm -m node --loginall=automatic
[Install]
WantedBy=sysinit.target
diff --git a/etc/systemd/iscsi_mark_root_nodes b/etc/systemd/iscsi_mark_root_nodes
deleted file mode 100755
index c68475c44de5..000000000000
--- a/etc/systemd/iscsi_mark_root_nodes
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-
-ISCSIADM=/sbin/iscsiadm
-SESSION_FILE=/run/initramfs/iscsi.sessions
-
-if [ ! -f $SESSION_FILE ] ; then
- exit 0
-fi
-
-while read t num i target; do
- ip=${i%:*}
- $ISCSIADM -m node -p $ip -T $target -o update -n node.startup -v onboot
-done < $SESSION_FILE
-
--
2.14.4

View File

@ -1,18 +1,19 @@
From 478527833bdb8ebc9f4523c54e544b244bfe76f1 Mon Sep 17 00:00:00 2001
From 29769497994066772429d57937dc3a8c0f515304 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Mon, 19 Nov 2012 16:38:45 -0800
Subject: [PATCH 07/32] use var for config
Subject: [PATCH] use var for config
---
README | 33 ++++++++++++++++-----------------
doc/iscsiadm.8 | 8 ++++----
doc/iscsid.8 | 2 +-
usr/idbm.c | 6 +++---
usr/idbm.h | 13 +++++++------
usr/iface.h | 3 ++-
5 files changed, 32 insertions(+), 31 deletions(-)
6 files changed, 33 insertions(+), 32 deletions(-)
diff --git a/README b/README
index c05814a2593b..326c3b01e608 100644
index c05814a..326c3b0 100644
--- a/README
+++ b/README
@@ -172,8 +172,7 @@ Usage: iscsid [OPTION]
@ -146,10 +147,10 @@ index c05814a2593b..326c3b01e608 100644
Note that for iSNS the poll_interval does not have to be set. If not set,
iscsid will only perform rediscovery when it gets a SCN from the server.
diff --git a/doc/iscsiadm.8 b/doc/iscsiadm.8
index a82805e28fb9..758a47c2d1fe 100644
index bf23dd2..9cfce16 100644
--- a/doc/iscsiadm.8
+++ b/doc/iscsiadm.8
@@ -241,7 +241,7 @@ This option is only valid for ping submode.
@@ -228,7 +228,7 @@ This option is only valid for ping submode.
.TP
\fB\-I\fR, \fB\-\-interface=\fI[iface]\fR
The interface argument specifies the iSCSI interface to use for the operation.
@ -158,16 +159,16 @@ index a82805e28fb9..758a47c2d1fe 100644
iSCSI (qla4xxx) the iface config must have the hardware address
(iface.hwaddress = port's MAC address)
and the driver/transport_name (iface.transport_name). The iface's name is
@@ -318,7 +318,7 @@ If no other options are specified: for \fIdiscovery\fR, \fIdiscoverydb\fR and
@@ -301,7 +301,7 @@ If no other options are specified: for \fIdiscovery\fR, \fIdiscoverydb\fR and
\fInode\fR, all of their respective records are displayed; for \fIsession\fR,
all active sessions and connections are displayed; for \fIfw\fR, all boot
firmware values are displayed; for \fIhost\fR, all iSCSI hosts are displayed;
-and for \fIiface\fR, all ifaces setup in /etc/iscsi/ifaces are displayed.
+and for \fIiface\fR, all ifaces setup in /var/lib/iscsi/ifaces are displayed.
.TP
\fB\-n\fR, \fB\-\-name=\fIname\fR
@@ -703,10 +703,10 @@ The configuration file read by \fBiscsid\fR and \fBiscsiadm\fR on startup.
In node mode, specify a field \fIname\fR in a record. In flashnode submode
@@ -640,10 +640,10 @@ The configuration file read by \fBiscsid\fR and \fBiscsiadm\fR on startup.
The file containing the iSCSI InitiatorName and InitiatorAlias read by
\fBiscsid\fR and \fBiscsiadm\fR on startup.
.TP
@ -178,13 +179,26 @@ index a82805e28fb9..758a47c2d1fe 100644
-/etc/iscsi/send_targets
+/var/lib/iscsi/send_targets
This directory contains the portals.
.SH "SEE ALSO"
.BR iscsid (8)
diff --git a/doc/iscsid.8 b/doc/iscsid.8
index 6f9218f..0da0551 100644
--- a/doc/iscsid.8
+++ b/doc/iscsid.8
@@ -65,7 +65,7 @@ and
.B iscsiadm
on startup.
.TP
-/etc/iscsi/nodes
+/var/lib/iscsi/nodes
Open-iSCSI persistent configuration database
.SH "SEE ALSO"
diff --git a/usr/idbm.c b/usr/idbm.c
index 0aa3870a76fd..ec33ce905dc1 100644
index f3c812e..8b96146 100644
--- a/usr/idbm.c
+++ b/usr/idbm.c
@@ -2926,9 +2926,9 @@ free_info:
@@ -2929,9 +2929,9 @@ free_info:
int idbm_init(idbm_get_config_file_fn *fn)
{
/* make sure root db dir is there */
@ -198,7 +212,7 @@ index 0aa3870a76fd..ec33ce905dc1 100644
return errno;
}
diff --git a/usr/idbm.h b/usr/idbm.h
index b83c0bb1cca8..2b05d7871be9 100644
index b83c0bb..2b05d78 100644
--- a/usr/idbm.h
+++ b/usr/idbm.h
@@ -29,12 +29,13 @@
@ -222,7 +236,7 @@ index b83c0bb1cca8..2b05d7871be9 100644
#define ISNS_CONFIG_NAME "isns_config"
diff --git a/usr/iface.h b/usr/iface.h
index 6c06f7f7d450..c8b9de9a7c3a 100644
index 6c06f7f..c8b9de9 100644
--- a/usr/iface.h
+++ b/usr/iface.h
@@ -21,8 +21,9 @@
@ -237,5 +251,5 @@ index 6c06f7f7d450..c8b9de9a7c3a 100644
struct iface_rec;
struct list_head;
--
2.14.4
2.21.0

View File

@ -1,32 +1,32 @@
From ef17e73261b386a21e231aa702c65e58ee8f65cc Mon Sep 17 00:00:00 2001
From e2973cb7d4bca9056702b698511c020c93438e2a Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build>
Date: Mon, 26 Jan 2015 12:57:11 -0800
Subject: [PATCH 09/32] libiscsi
Subject: [PATCH] libiscsi
---
Makefile | 2 +
libiscsi/Makefile | 61 ++
libiscsi/libiscsi.c | 617 +++++++++++
libiscsi/libiscsi.doxy | 1473 +++++++++++++++++++++++++++
libiscsi/libiscsi.h | 344 +++++++
libiscsi/Makefile | 65 +
libiscsi/libiscsi.c | 617 ++++++++
libiscsi/libiscsi.doxy | 1473 +++++++++++++++++++
libiscsi/libiscsi.h | 344 +++++
libiscsi/no_date_footer.html | 6 +
libiscsi/pylibiscsi.c | 709 +++++++++++++
libiscsi/pylibiscsi.c | 709 +++++++++
libiscsi/setup.py | 9 +
libiscsi/tests/test_discovery_firmware.c | 53 +
libiscsi/tests/test_discovery_sendtargets.c | 60 ++
libiscsi/tests/test_get_auth.c | 70 ++
libiscsi/tests/test_discovery_sendtargets.c | 60 +
libiscsi/tests/test_get_auth.c | 70 +
libiscsi/tests/test_get_initiator_name.c | 38 +
libiscsi/tests/test_get_network_config.c | 45 +
libiscsi/tests/test_login.c | 52 +
libiscsi/tests/test_logout.c | 51 +
libiscsi/tests/test_params.c | 103 ++
libiscsi/tests/test_set_auth.c | 58 ++
libiscsi/tests/test_set_auth.c | 58 +
usr/Makefile | 2 +-
usr/discovery.c | 5 +
usr/idbm.c | 6 +-
usr/idbm.h | 3 +
usr/iscsi_ipc.h | 2 +
22 files changed, 3765 insertions(+), 4 deletions(-)
22 files changed, 3769 insertions(+), 4 deletions(-)
create mode 100644 libiscsi/Makefile
create mode 100644 libiscsi/libiscsi.c
create mode 100644 libiscsi/libiscsi.doxy
@ -45,10 +45,10 @@ Subject: [PATCH 09/32] libiscsi
create mode 100644 libiscsi/tests/test_set_auth.c
diff --git a/Makefile b/Makefile
index c533e9d0d016..80afe86d6558 100644
index 9a33774..bef6f1f 100644
--- a/Makefile
+++ b/Makefile
@@ -52,6 +52,7 @@ user: iscsiuio/Makefile
@@ -58,6 +58,7 @@ user: iscsiuio/Makefile
$(MAKE) -C usr
$(MAKE) -C utils
$(MAKE) -C iscsiuio
@ -56,7 +56,7 @@ index c533e9d0d016..80afe86d6558 100644
@echo
@echo "Compilation complete Output file"
@echo "----------------------------------- ----------------"
@@ -72,6 +73,7 @@ iscsiuio/configure iscsiuio/Makefile.in: iscsiuio/configure.ac iscsiuio/Makefile
@@ -78,6 +79,7 @@ iscsiuio/configure iscsiuio/Makefile.in: iscsiuio/configure.ac iscsiuio/Makefile
force: ;
clean:
@ -66,7 +66,7 @@ index c533e9d0d016..80afe86d6558 100644
$(MAKE) -C utils clean
diff --git a/libiscsi/Makefile b/libiscsi/Makefile
new file mode 100644
index 000000000000..317a7ec4db30
index 0000000..53f9746
--- /dev/null
+++ b/libiscsi/Makefile
@@ -0,0 +1,65 @@
@ -137,7 +137,7 @@ index 000000000000..317a7ec4db30
+-include .depend ../usr/.depend
diff --git a/libiscsi/libiscsi.c b/libiscsi/libiscsi.c
new file mode 100644
index 000000000000..064e4b570d0b
index 0000000..064e4b5
--- /dev/null
+++ b/libiscsi/libiscsi.c
@@ -0,0 +1,617 @@
@ -760,7 +760,7 @@ index 000000000000..064e4b570d0b
+}
diff --git a/libiscsi/libiscsi.doxy b/libiscsi/libiscsi.doxy
new file mode 100644
index 000000000000..7a5ff7f7cd5a
index 0000000..7a5ff7f
--- /dev/null
+++ b/libiscsi/libiscsi.doxy
@@ -0,0 +1,1473 @@
@ -2239,7 +2239,7 @@ index 000000000000..7a5ff7f7cd5a
+SEARCHENGINE = NO
diff --git a/libiscsi/libiscsi.h b/libiscsi/libiscsi.h
new file mode 100644
index 000000000000..756590e14d8b
index 0000000..756590e
--- /dev/null
+++ b/libiscsi/libiscsi.h
@@ -0,0 +1,344 @@
@ -2589,7 +2589,7 @@ index 000000000000..756590e14d8b
+#endif
diff --git a/libiscsi/no_date_footer.html b/libiscsi/no_date_footer.html
new file mode 100644
index 000000000000..1e0c6c4ab49e
index 0000000..1e0c6c4
--- /dev/null
+++ b/libiscsi/no_date_footer.html
@@ -0,0 +1,6 @@
@ -2601,7 +2601,7 @@ index 000000000000..1e0c6c4ab49e
+</html>
diff --git a/libiscsi/pylibiscsi.c b/libiscsi/pylibiscsi.c
new file mode 100644
index 000000000000..88008538f04f
index 0000000..8800853
--- /dev/null
+++ b/libiscsi/pylibiscsi.c
@@ -0,0 +1,709 @@
@ -3316,7 +3316,7 @@ index 000000000000..88008538f04f
+}
diff --git a/libiscsi/setup.py b/libiscsi/setup.py
new file mode 100644
index 000000000000..caa4e66ca906
index 0000000..caa4e66
--- /dev/null
+++ b/libiscsi/setup.py
@@ -0,0 +1,9 @@
@ -3331,7 +3331,7 @@ index 000000000000..caa4e66ca906
+ description = 'libiscsi python bindings', ext_modules = [module1])
diff --git a/libiscsi/tests/test_discovery_firmware.c b/libiscsi/tests/test_discovery_firmware.c
new file mode 100644
index 000000000000..76e852a37019
index 0000000..76e852a
--- /dev/null
+++ b/libiscsi/tests/test_discovery_firmware.c
@@ -0,0 +1,53 @@
@ -3390,7 +3390,7 @@ index 000000000000..76e852a37019
+}
diff --git a/libiscsi/tests/test_discovery_sendtargets.c b/libiscsi/tests/test_discovery_sendtargets.c
new file mode 100644
index 000000000000..1a3c12ef684b
index 0000000..1a3c12e
--- /dev/null
+++ b/libiscsi/tests/test_discovery_sendtargets.c
@@ -0,0 +1,60 @@
@ -3456,7 +3456,7 @@ index 000000000000..1a3c12ef684b
+}
diff --git a/libiscsi/tests/test_get_auth.c b/libiscsi/tests/test_get_auth.c
new file mode 100644
index 000000000000..5e234dadd0de
index 0000000..5e234da
--- /dev/null
+++ b/libiscsi/tests/test_get_auth.c
@@ -0,0 +1,70 @@
@ -3532,7 +3532,7 @@ index 000000000000..5e234dadd0de
+}
diff --git a/libiscsi/tests/test_get_initiator_name.c b/libiscsi/tests/test_get_initiator_name.c
new file mode 100644
index 000000000000..997c053e5bf6
index 0000000..997c053
--- /dev/null
+++ b/libiscsi/tests/test_get_initiator_name.c
@@ -0,0 +1,38 @@
@ -3576,7 +3576,7 @@ index 000000000000..997c053e5bf6
+}
diff --git a/libiscsi/tests/test_get_network_config.c b/libiscsi/tests/test_get_network_config.c
new file mode 100644
index 000000000000..2dedd6102858
index 0000000..2dedd61
--- /dev/null
+++ b/libiscsi/tests/test_get_network_config.c
@@ -0,0 +1,45 @@
@ -3627,7 +3627,7 @@ index 000000000000..2dedd6102858
+}
diff --git a/libiscsi/tests/test_login.c b/libiscsi/tests/test_login.c
new file mode 100644
index 000000000000..3eb70d63e111
index 0000000..3eb70d6
--- /dev/null
+++ b/libiscsi/tests/test_login.c
@@ -0,0 +1,52 @@
@ -3685,7 +3685,7 @@ index 000000000000..3eb70d63e111
+}
diff --git a/libiscsi/tests/test_logout.c b/libiscsi/tests/test_logout.c
new file mode 100644
index 000000000000..b734dca58773
index 0000000..b734dca
--- /dev/null
+++ b/libiscsi/tests/test_logout.c
@@ -0,0 +1,51 @@
@ -3742,7 +3742,7 @@ index 000000000000..b734dca58773
+}
diff --git a/libiscsi/tests/test_params.c b/libiscsi/tests/test_params.c
new file mode 100644
index 000000000000..d3223be1e894
index 0000000..d3223be
--- /dev/null
+++ b/libiscsi/tests/test_params.c
@@ -0,0 +1,103 @@
@ -3851,7 +3851,7 @@ index 000000000000..d3223be1e894
+}
diff --git a/libiscsi/tests/test_set_auth.c b/libiscsi/tests/test_set_auth.c
new file mode 100644
index 000000000000..a21f88806ab9
index 0000000..a21f888
--- /dev/null
+++ b/libiscsi/tests/test_set_auth.c
@@ -0,0 +1,58 @@
@ -3914,20 +3914,20 @@ index 000000000000..a21f88806ab9
+ return rc;
+}
diff --git a/usr/Makefile b/usr/Makefile
index f9445adabbb0..8751d0d05468 100644
index 0203127..e4752e6 100644
--- a/usr/Makefile
+++ b/usr/Makefile
@@ -35,7 +35,7 @@ endif
@@ -37,7 +37,7 @@ PKG_CONFIG = /usr/bin/pkg-config
CFLAGS ?= -O2 -g
WARNFLAGS ?= -Wall -Wstrict-prototypes
CFLAGS += $(WARNFLAGS) -I../include -I. -D_GNU_SOURCE \
- -I$(TOPDIR)/libopeniscsiusr
+ -I$(TOPDIR)/libopeniscsiusr -DISNS_ENABLE
CFLAGS += $(shell $(PKG_CONFIG) --cflags libkmod)
ISCSI_LIB = -L$(TOPDIR)/libopeniscsiusr -lopeniscsiusr
PROGRAMS = iscsid iscsiadm iscsistart
LDFLAGS += $(shell $(PKG_CONFIG) --libs libkmod)
diff --git a/usr/discovery.c b/usr/discovery.c
index 8001af6fe452..02b77f02b644 100644
index 199c160..d17a250 100644
--- a/usr/discovery.c
+++ b/usr/discovery.c
@@ -36,6 +36,7 @@
@ -3968,10 +3968,10 @@ index 8001af6fe452..02b77f02b644 100644
int discovery_fw(void *data, struct iface_rec *iface,
struct list_head *rec_list)
diff --git a/usr/idbm.c b/usr/idbm.c
index ec33ce905dc1..6b651765f19e 100644
index 8b96146..19f7e84 100644
--- a/usr/idbm.c
+++ b/usr/idbm.c
@@ -1709,9 +1709,9 @@ int idbm_print_all_discovery(int info_level)
@@ -1712,9 +1712,9 @@ int idbm_print_all_discovery(int info_level)
* fn should return -1 if it skipped the rec, an ISCSI_ERR error code if
* the operation failed or 0 if fn was run successfully.
*/
@ -3985,7 +3985,7 @@ index ec33ce905dc1..6b651765f19e 100644
DIR *iface_dirfd;
struct dirent *iface_dent;
diff --git a/usr/idbm.h b/usr/idbm.h
index 2b05d7871be9..b9b1810f78f2 100644
index 2b05d78..b9b1810 100644
--- a/usr/idbm.h
+++ b/usr/idbm.h
@@ -102,6 +102,9 @@ struct rec_op_data {
@ -3999,7 +3999,7 @@ index 2b05d7871be9..b9b1810f78f2 100644
idbm_portal_op_fn *fn, char *targetname);
extern int idbm_for_each_node(int *found, void *data,
diff --git a/usr/iscsi_ipc.h b/usr/iscsi_ipc.h
index 47857dd9b0ca..fb8e96552551 100644
index 47857dd..fb8e965 100644
--- a/usr/iscsi_ipc.h
+++ b/usr/iscsi_ipc.h
@@ -162,4 +162,6 @@ struct iscsi_ipc {
@ -4010,5 +4010,5 @@ index 47857dd9b0ca..fb8e96552551 100644
+
#endif /* ISCSI_IPC_H */
--
2.14.4
2.21.0

View File

@ -1,53 +0,0 @@
From f16f7f90721c9d6965e48c7338a600d23b58e19d Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Tue, 22 Jan 2013 14:27:12 -0800
Subject: [PATCH 11/32] iscsiuio systemd unit files
---
etc/systemd/iscsiuio.service | 17 +++++++++++++++++
etc/systemd/iscsiuio.socket | 9 +++++++++
2 files changed, 26 insertions(+)
create mode 100644 etc/systemd/iscsiuio.service
create mode 100644 etc/systemd/iscsiuio.socket
diff --git a/etc/systemd/iscsiuio.service b/etc/systemd/iscsiuio.service
new file mode 100644
index 000000000000..f0410b76b80e
--- /dev/null
+++ b/etc/systemd/iscsiuio.service
@@ -0,0 +1,17 @@
+[Unit]
+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
+
+[Service]
+Type=forking
+PIDFile=/var/run/iscsiuio.pid
+ExecStart=/usr/sbin/iscsiuio
+
+[Install]
+WantedBy=multi-user.target
diff --git a/etc/systemd/iscsiuio.socket b/etc/systemd/iscsiuio.socket
new file mode 100644
index 000000000000..d42cedc161a3
--- /dev/null
+++ b/etc/systemd/iscsiuio.socket
@@ -0,0 +1,9 @@
+[Unit]
+Description=Open-iSCSI iscsiuio Socket
+Documentation=man:iscsiuio(8)
+
+[Socket]
+ListenStream=@ISCSID_UIP_ABSTRACT_NAMESPACE
+
+[Install]
+WantedBy=sockets.target
--
2.14.4

View File

@ -1,30 +0,0 @@
From 9807bf0a042238891f2008a5a6d70acfd6724b12 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Tue, 28 May 2013 13:12:27 -0700
Subject: [PATCH 12/32] Don't check for autostart sessions if iscsi is not used
(bug #951951)
Change conditional startup in iscsi.service to check for a non-empty
nodes directory, instead of initiator-name. This fits better with what
it's doing, as there's no need to scan for autostart node records if
there are no node records at all.
---
etc/systemd/iscsi.service | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/etc/systemd/iscsi.service b/etc/systemd/iscsi.service
index 0309e2fc9892..d5712bd3779b 100644
--- a/etc/systemd/iscsi.service
+++ b/etc/systemd/iscsi.service
@@ -5,7 +5,7 @@ DefaultDependencies=no
Conflicts=shutdown.target
After=systemd-remount-fs.service network.target iscsid.service iscsiuio.service
Before=remote-fs-pre.target
-ConditionPathExists=/etc/iscsi/initiatorname.iscsi
+ConditionDirectoryNotEmpty=/var/lib/iscsi/nodes
[Service]
Type=oneshot
--
2.14.4

View File

@ -1,55 +0,0 @@
From c7b743486c6a499a037744760846abdb42959808 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Wed, 26 Feb 2014 16:33:48 -0800
Subject: [PATCH 14/32] update handling of boot sessions
force start iscsiuio if needed, socket activation does not seem to be
working for recovery
---
etc/systemd/iscsi-mark-root-nodes | 29 +++++++++++++++++++++++------
1 file changed, 23 insertions(+), 6 deletions(-)
diff --git a/etc/systemd/iscsi-mark-root-nodes b/etc/systemd/iscsi-mark-root-nodes
index 157be62b4041..6bddf6c5ccc1 100644
--- a/etc/systemd/iscsi-mark-root-nodes
+++ b/etc/systemd/iscsi-mark-root-nodes
@@ -1,13 +1,30 @@
#!/bin/bash
ISCSIADM=/sbin/iscsiadm
+start_iscsid=0
+start_iscsiuio=0
-$ISCSIADM -m session >/dev/null 2>&1 || exit 0
+while read t num p target flash; do
+ # strip tag number from portal, keep "ip:port"
+ portal=${p%,*}
+ transport=${t%:}
-$ISCSIADM -m session | while read t num i target; do
- ip=${i%:*}
- $ISCSIADM -m node -p $ip -T $target -o update -n node.startup -v onboot
-done
+ $ISCSIADM -m node -p $portal -T $target -o update -n node.startup -v onboot
-systemctl start iscsid.service
+ 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
--
2.14.4

View File

@ -1,34 +0,0 @@
From f349a706ec083574fbf7ed1e479fdfebde7023b8 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Fri, 14 Mar 2014 09:22:21 -0700
Subject: [PATCH 15/32] update iscsi.service for boot session recovery
---
etc/systemd/iscsi.service | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/etc/systemd/iscsi.service b/etc/systemd/iscsi.service
index d5712bd3779b..3de76c5b07ec 100644
--- a/etc/systemd/iscsi.service
+++ b/etc/systemd/iscsi.service
@@ -5,14 +5,15 @@ DefaultDependencies=no
Conflicts=shutdown.target
After=systemd-remount-fs.service network.target iscsid.service iscsiuio.service
Before=remote-fs-pre.target
-ConditionDirectoryNotEmpty=/var/lib/iscsi/nodes
+ConditionDirectoryNotEmpty=|/var/lib/iscsi/nodes
+ConditionDirectoryNotEmpty=|/sys/class/iscsi_session
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/usr/libexec/iscsi-mark-root-nodes
+SuccessExitStatus=21
ExecStart=/sbin/iscsiadm -m node --loginall=automatic
-ExecStop=/bin/sync
ExecStop=/sbin/iscsiadm -m node --logoutall=automatic
ExecReload=/sbin/iscsiadm -m node --loginall=automatic
--
2.14.4

View File

@ -1,41 +0,0 @@
From 954ab51516734aaeed01a195a6e70b825b0bf10a Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Wed, 17 Sep 2014 09:58:39 -0700
Subject: [PATCH 16/32] updates to iscsi.service
Resolves: #1126524
Resolves: #1111925
---
etc/systemd/iscsi.service | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/etc/systemd/iscsi.service b/etc/systemd/iscsi.service
index 3de76c5b07ec..ad7be34d5918 100644
--- a/etc/systemd/iscsi.service
+++ b/etc/systemd/iscsi.service
@@ -5,17 +5,17 @@ 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
ConditionDirectoryNotEmpty=|/var/lib/iscsi/nodes
ConditionDirectoryNotEmpty=|/sys/class/iscsi_session
[Service]
Type=oneshot
RemainAfterExit=true
-ExecStart=/usr/libexec/iscsi-mark-root-nodes
-SuccessExitStatus=21
-ExecStart=/sbin/iscsiadm -m node --loginall=automatic
-ExecStop=/sbin/iscsiadm -m node --logoutall=automatic
-ExecReload=/sbin/iscsiadm -m node --loginall=automatic
+ExecStart=-/usr/libexec/iscsi-mark-root-nodes
+ExecStart=-/sbin/iscsiadm -m node --loginall=automatic
+ExecStop=-/sbin/iscsiadm -m node --logoutall=automatic
+ExecReload=-/sbin/iscsiadm -m node --loginall=automatic
[Install]
WantedBy=sysinit.target
--
2.14.4

View File

@ -1,55 +0,0 @@
From 3815643d7db65487fa2b7058dd612ddf2549f85a Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build>
Date: Tue, 13 Jan 2015 16:30:01 -0800
Subject: [PATCH 17/32] make-session-shutdown-a-seperate-service.patch
---
etc/systemd/iscsi-shutdown.service | 14 ++++++++++++++
etc/systemd/iscsi.service | 3 +--
2 files changed, 15 insertions(+), 2 deletions(-)
create mode 100644 etc/systemd/iscsi-shutdown.service
diff --git a/etc/systemd/iscsi-shutdown.service b/etc/systemd/iscsi-shutdown.service
new file mode 100644
index 000000000000..23758e959ff2
--- /dev/null
+++ b/etc/systemd/iscsi-shutdown.service
@@ -0,0 +1,14 @@
+[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
+ExecStop=-/sbin/iscsiadm -m node --logoutall=all
diff --git a/etc/systemd/iscsi.service b/etc/systemd/iscsi.service
index ad7be34d5918..27369568bf35 100644
--- a/etc/systemd/iscsi.service
+++ b/etc/systemd/iscsi.service
@@ -5,7 +5,7 @@ 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
+Wants=remote-fs-pre.target iscsi-shutdown.service
ConditionDirectoryNotEmpty=|/var/lib/iscsi/nodes
ConditionDirectoryNotEmpty=|/sys/class/iscsi_session
@@ -14,7 +14,6 @@ Type=oneshot
RemainAfterExit=true
ExecStart=-/usr/libexec/iscsi-mark-root-nodes
ExecStart=-/sbin/iscsiadm -m node --loginall=automatic
-ExecStop=-/sbin/iscsiadm -m node --logoutall=automatic
ExecReload=-/sbin/iscsiadm -m node --loginall=automatic
[Install]
--
2.14.4

View File

@ -15,8 +15,8 @@ index 4dfef4ccfb77..1334d47c6bb3 100644
* This may not be the same value as the kernel versions because
* some other maintainer could merge a patch without going through us
*/
-#define ISCSI_VERSION_STR "2.0-876"
+#define ISCSI_VERSION_STR "6.2.0.876-5"
-#define ISCSI_VERSION_STR "2.0-877"
+#define ISCSI_VERSION_STR "6.2.0.877-0"
#define ISCSI_VERSION_FILE "/sys/module/scsi_transport_iscsi/version"
#endif

View File

@ -1,27 +0,0 @@
commit d8298fc54eb69d3989878be46e9c7d6ec2055650
Author: Lee Duncan <lduncan@suse.com>
Date: Mon Sep 24 16:22:18 2018 -0700
Allow reading sysfs "port" to fail gracefully.
Do not consider it a fatal error if reading sysfs value
for "port" fails, since we allow failure for "address".
---
libopeniscsiusr/session.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libopeniscsiusr/session.c b/libopeniscsiusr/session.c
index a8339395fc03..f8c89c323afb 100644
--- a/libopeniscsiusr/session.c
+++ b/libopeniscsiusr/session.c
@@ -205,8 +205,8 @@ int iscsi_session_get(struct iscsi_context *ctx, uint32_t sid,
_sysfs_prop_get_str(ctx, sysfs_con_dir_path, "address", (*se)->address,
sizeof((*se)->address) / sizeof(char), "");
- _good(_sysfs_prop_get_i32(ctx, sysfs_con_dir_path, "port",
- &((*se)->port), -1, false), rc, out);
+ _sysfs_prop_get_i32(ctx, sysfs_con_dir_path, "port",
+ &((*se)->port), -1, true);
if ((strcmp((*se)->address, "") == 0) &&
(strcmp((*se)->persistent_address, "") != 0))

View File

@ -1,48 +0,0 @@
commit 7df5edbb427c79337bdd651c2bcdda8eb05f077b
Author: Lee Duncan <lduncan@suse.com>
Date: Mon Sep 24 16:30:34 2018 -0700
Fix incorrect sysfs logic for port and ip address.
If "port" is available and "persistent_port" is not, then
correctly use the one that is present for both values.
Likewise for "address" and "persistent_address".
---
libopeniscsiusr/session.c | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/libopeniscsiusr/session.c b/libopeniscsiusr/session.c
index f8c89c323afb..98601dcf807e 100644
--- a/libopeniscsiusr/session.c
+++ b/libopeniscsiusr/session.c
@@ -208,22 +208,20 @@ int iscsi_session_get(struct iscsi_context *ctx, uint32_t sid,
_sysfs_prop_get_i32(ctx, sysfs_con_dir_path, "port",
&((*se)->port), -1, true);
- if ((strcmp((*se)->address, "") == 0) &&
- (strcmp((*se)->persistent_address, "") != 0))
- _strncpy((*se)->persistent_address, (*se)->address,
- sizeof((*se)->persistent_address) / sizeof(char));
-
if ((strcmp((*se)->address, "") != 0) &&
(strcmp((*se)->persistent_address, "") == 0))
+ _strncpy((*se)->persistent_address, (*se)->address,
+ sizeof((*se)->persistent_address) / sizeof(char));
+ else if ((strcmp((*se)->address, "") == 0) &&
+ (strcmp((*se)->persistent_address, "") != 0))
_strncpy((*se)->address, (*se)->persistent_address,
sizeof((*se)->address) / sizeof(char));
- if (((*se)->persistent_port != -1) &&
- ((*se)->port == -1))
+ if (((*se)->persistent_port == -1) &&
+ ((*se)->port != -1))
(*se)->persistent_port = (*se)->port;
-
- if (((*se)->persistent_port != -1) &&
- ((*se)->port == -1))
+ else if (((*se)->persistent_port != -1) &&
+ ((*se)->port == -1))
(*se)->port = (*se)->persistent_port;
_good(_iscsi_host_id_of_session(ctx, sid, &host_id), rc, out);

View File

@ -1,73 +0,0 @@
commit 09d7031cb462889392090e71991a89c522d387bc
Author: Lee Duncan <lduncan@suse.com>
Date: Mon Sep 24 16:37:19 2018 -0700
Fix reading of sysfs signed integers when negative.
The code for reading all sysfs integer types (of all
sizes) did not work when reading signed integers and
the return value was negative. So when the default was -1
and the value was not present, the code tried to return -1.
But the logic for checking against "max value" was
incorrect, causing INT_MAX to be returned instead of -1.
---
libopeniscsiusr/sysfs.c | 32 +++++++++++++++++++++++++++-----
1 file changed, 27 insertions(+), 5 deletions(-)
diff --git a/libopeniscsiusr/sysfs.c b/libopeniscsiusr/sysfs.c
index 08f71b317c55..c4f89a31aca0 100644
--- a/libopeniscsiusr/sysfs.c
+++ b/libopeniscsiusr/sysfs.c
@@ -47,7 +47,7 @@
#define _SYS_NULL_STR "(null)"
-#define _sysfs_prop_get_int_func_gen(func_name, out_type, type_max_value) \
+#define _sysfs_prop_get_uint_func_gen(func_name, out_type, type_max_value) \
int func_name(struct iscsi_context *ctx, const char *dir_path, \
const char *prop_name, out_type *val, \
out_type default_value, bool ignore_error) \
@@ -63,6 +63,28 @@
return rc; \
}
+#define _sysfs_prop_get_int_func_gen(func_name, out_type, type_min_value, type_max_value) \
+ int func_name(struct iscsi_context *ctx, const char *dir_path, \
+ const char *prop_name, out_type *val, \
+ out_type default_value, bool ignore_error) \
+ { \
+ long long int tmp_val = 0; \
+ int rc = LIBISCSI_OK; \
+ long long int dv = default_value; \
+ rc = iscsi_sysfs_prop_get_ll(ctx, dir_path, prop_name, \
+ &tmp_val, (long long int) dv, \
+ ignore_error); \
+ if (rc == LIBISCSI_OK) { \
+ if (tmp_val > type_max_value) \
+ *val = type_max_value; \
+ else if (tmp_val < type_min_value) \
+ *val = type_min_value; \
+ else \
+ *val = tmp_val; \
+ } \
+ return rc; \
+ }
+
enum _sysfs_dev_class {
_SYSFS_DEV_CLASS_ISCSI_SESSION,
@@ -82,10 +104,10 @@ static int iscsi_sysfs_prop_get_ll(struct iscsi_context *ctx,
static int sysfs_get_dev_path(struct iscsi_context *ctx, const char *path,
enum _sysfs_dev_class class, char **dev_path);
-_sysfs_prop_get_int_func_gen(_sysfs_prop_get_u8, uint8_t, UINT8_MAX);
-_sysfs_prop_get_int_func_gen(_sysfs_prop_get_u16, uint16_t, UINT16_MAX);
-_sysfs_prop_get_int_func_gen(_sysfs_prop_get_i32, int32_t, INT32_MAX);
-_sysfs_prop_get_int_func_gen(_sysfs_prop_get_u32, uint32_t, UINT32_MAX);
+_sysfs_prop_get_uint_func_gen(_sysfs_prop_get_u8, uint8_t, UINT8_MAX);
+_sysfs_prop_get_uint_func_gen(_sysfs_prop_get_u16, uint16_t, UINT16_MAX);
+_sysfs_prop_get_int_func_gen(_sysfs_prop_get_i32, int32_t, INT32_MIN, INT32_MAX);
+_sysfs_prop_get_uint_func_gen(_sysfs_prop_get_u32, uint32_t, UINT32_MAX);
static int sysfs_read_file(const char *path, uint8_t *buff, size_t buff_size)
{

View File

@ -1,69 +0,0 @@
commit 7d121d12ad6ba7783308c25ffd338a9fa0cc402b
Author: Lee Duncan <lduncan@suse.com>
Date: Tue Sep 25 09:48:53 2018 -0700
Create a new error for "target not connected".
The session_logout_qtask() function now recognizes
a new state of "target likely not connected" if
syncing up, in connection wait state, and re-opening
the connection.
---
include/iscsi_err.h | 2 ++
usr/initiator.c | 16 +++++++++++++++-
usr/iscsi_err.c | 1 +
3 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/include/iscsi_err.h b/include/iscsi_err.h
index 506bd8c9bd27..ed000dd00baf 100644
--- a/include/iscsi_err.h
+++ b/include/iscsi_err.h
@@ -68,6 +68,8 @@ enum {
ISCSI_ERR_UNKNOWN_DISCOVERY_TYPE = 30,
/* child process terminated */
ISCSI_ERR_CHILD_TERMINATED = 31,
+ /* session likely not connected */
+ ISCSI_ERR_SESSION_NOT_CONNECTED = 32,
/* Always last. Indicates end of error code space */
ISCSI_MAX_ERR_VAL,
diff --git a/usr/initiator.c b/usr/initiator.c
index a86d1e6dee90..935056a3abde 100644
--- a/usr/initiator.c
+++ b/usr/initiator.c
@@ -2056,8 +2056,22 @@ int session_logout_task(int sid, queue_task_t *qtask)
return ISCSI_ERR_SESS_NOT_FOUND;
}
conn = &session->conn[0];
+
/*
- * If syncing up or if this is the initial login and mgmt_ipc
+ * If syncing up, in XPT_WAIT, and REOPENing, then return
+ * an informative error, since the target for this session
+ * is likely not connected
+ */
+ if (session->notify_qtask &&
+ (conn->state == ISCSI_CONN_STATE_XPT_WAIT) &&
+ (session->r_stage == R_STAGE_SESSION_REOPEN)) {
+ log_warning("session cannot be terminted because it's trying to reconnect: try again later");
+ return ISCSI_ERR_SESSION_NOT_CONNECTED;
+ }
+
+ /*
+ * If syncing up and not reconnecting,
+ * or if this is the initial login and mgmt_ipc
* has not been notified of that result fail the logout request
*/
if (session->notify_qtask ||
diff --git a/usr/iscsi_err.c b/usr/iscsi_err.c
index 1ba9e648d7c1..23c61fc3574e 100644
--- a/usr/iscsi_err.c
+++ b/usr/iscsi_err.c
@@ -54,6 +54,7 @@ static char *iscsi_err_msgs[] = {
/* 29 */ "operation failed but retry may succeed",
/* 30 */ "unknown discovery type",
/* 31 */ "child process terminated",
+ /* 32 */ "target likely not connected",
};
char *iscsi_err_to_str(int err)

View File

@ -1,26 +0,0 @@
commit 8bf04a094e572c56d4f8bd30ff064c84c75a0247
Author: Lee Duncan <lduncan@suse.com>
Date: Tue Sep 25 09:53:55 2018 -0700
Fix bug in error message when reading sysfs numbers.
The message printed when ENOENT was returned for
a number-type sysfs value was missing the attribute
name parameter.
---
libopeniscsiusr/sysfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libopeniscsiusr/sysfs.c b/libopeniscsiusr/sysfs.c
index c4f89a31aca0..5e6532e7746f 100644
--- a/libopeniscsiusr/sysfs.c
+++ b/libopeniscsiusr/sysfs.c
@@ -237,7 +237,7 @@ static int iscsi_sysfs_prop_get_ll(struct iscsi_context *ctx,
"Failed to read '%s': "
"File '%s' does not exists, using ",
"default value %lld",
- file_path, default_value);
+ prop_name, file_path, default_value);
*val = default_value;
goto out;
}

View File

@ -1,62 +0,0 @@
commit ae0b2ceb620e2bf527c06d21c110791d1e0e8bf4
Author: Lee Duncan <lduncan@suse.com>
Date: Tue Sep 25 09:57:46 2018 -0700
Handle ENOTCONN error separately when reading sysfs values.
This error happens when the daemon is attempting to
reconnect a session when starting up, so should not
be considered an internal error.
---
libopeniscsiusr/sysfs.c | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/libopeniscsiusr/sysfs.c b/libopeniscsiusr/sysfs.c
index 5e6532e7746f..2c3f077bf3fa 100644
--- a/libopeniscsiusr/sysfs.c
+++ b/libopeniscsiusr/sysfs.c
@@ -184,6 +184,21 @@ int _sysfs_prop_get_str(struct iscsi_context *ctx, const char *dir_path,
_error(ctx, "Failed to read '%s': "
"permission deny when reading '%s'", prop_name,
file_path);
+ } else if (errno_save == ENOTCONN) {
+ if (default_value == NULL) {
+ rc = LIBISCSI_ERR_SYSFS_LOOKUP;
+ _error(ctx, "Failed to read '%s': "
+ "error when reading '%s': "
+ "Target unavailable",
+ prop_name, file_path);
+ } else {
+ _info(ctx, "Failed to read '%s': "
+ "error when reading '%s': "
+ "Target unavailable, using default value '%s'",
+ prop_name, file_path, default_value);
+ memcpy(buff, (void *) default_value,
+ strlen(default_value) + 1);
+ }
} else {
rc = LIBISCSI_ERR_BUG;
_error(ctx, "Failed to read '%s': "
@@ -246,6 +261,22 @@ static int iscsi_sysfs_prop_get_ll(struct iscsi_context *ctx,
_error(ctx, "Permission deny when reading '%s'",
file_path);
goto out;
+ } else if (errno_save == ENOTCONN) {
+ if (!ignore_error) {
+ rc = LIBISCSI_ERR_SYSFS_LOOKUP;
+ _error(ctx, "Failed to read '%s': "
+ "error when reading '%s': "
+ "Target unavailable",
+ prop_name, file_path);
+ goto out;
+ } else {
+ _info(ctx, "Failed to read '%s': "
+ "error when reading '%s': "
+ "Target unavailable, using default value %lld",
+ prop_name, file_path, default_value);
+ *val = default_value;
+ goto out;
+ }
} else {
rc = LIBISCSI_ERR_BUG;
_error(ctx, "Error when reading '%s': %d", file_path,

View File

@ -1,26 +0,0 @@
commit baa0cb45cfcf10a81283c191b0b236cd1a2f66ee
Author: Lee Duncan <lduncan@suse.com>
Date: Fri Oct 12 09:57:20 2018 -0700
Restore space in node-mode level 0 output
As part of the libopeniscsiusr update, the output
of "iscsiadm -m node" dropped a space that needs to
be between the portal and the target, for proper
parsing.
Fixes: 87ea50a1c3a97
diff --git a/usr/iscsiadm.c b/usr/iscsiadm.c
index e3ba03c838f3..25c6cdc0ff12 100644
--- a/usr/iscsiadm.c
+++ b/usr/iscsiadm.c
@@ -683,7 +683,7 @@ static int login_portals(struct node_rec *pattern_rec)
static void print_node_flat(struct iscsi_node *node)
{
- printf("%s,%" PRIu16 "%s\n",
+ printf("%s,%" PRIu16 " %s\n",
iscsi_node_portal_get(node),
iscsi_node_tpgt_get(node),
iscsi_node_target_name_get(node));

View File

@ -1,6 +1,6 @@
%global open_iscsi_version 2.0
%global open_iscsi_build 876
%global commit0 f3c8e90fc0894c088950a15ee6618b427f9e2457
%global open_iscsi_build 877
%global commit0 f71581bd641dc26d330cb8b97e5ec272dd08f811
%global shortcommit0 %(c=%{commit0}; echo ${c:0:7})
%if 0%{?rhel} > 7
@ -13,7 +13,7 @@
Summary: iSCSI daemon and utility programs
Name: iscsi-initiator-utils
Version: 6.%{open_iscsi_version}.%{open_iscsi_build}
Release: 7.git%{shortcommit0}%{?dist}
Release: 1.git%{shortcommit0}%{?dist}
Group: System Environment/Daemons
License: GPLv2+
URL: http://www.open-iscsi.org
@ -21,42 +21,31 @@ Source0: https://github.com/open-iscsi/open-iscsi/archive/%{commit0}.tar.gz#/ope
Source4: 04-iscsi
Source5: iscsi-tmpfiles.conf
Patch0001: 0001-idmb_rec_write-check-for-tpgt-first.patch
Patch0002: 0002-idbm_rec_write-seperate-old-and-new-style-writes.patch
Patch0003: 0003-idbw_rec_write-pick-tpgt-from-existing-record.patch
Patch0004: 0004-update-systemd-service-files-add-iscsi.service-for-s.patch
Patch0005: 0005-iscsi-boot-related-service-file-updates.patch
Patch0001: 0001-service-file-tweaks.patch
Patch0002: 0001-fix-iscsiuio-build-with-libsystemd.patch
Patch0003: 0001-idmb_rec_write-check-for-tpgt-first.patch
Patch0004: 0002-idbm_rec_write-seperate-old-and-new-style-writes.patch
Patch0005: 0003-idbw_rec_write-pick-tpgt-from-existing-record.patch
Patch0006: 0006-update-initscripts-and-docs.patch
Patch0007: 0007-use-var-for-config.patch
Patch0008: 0008-use-red-hat-for-name.patch
Patch0009: 0009-libiscsi.patch
Patch0010: 0010-remove-the-offload-boot-supported-ifdef.patch
Patch0011: 0011-iscsiuio-systemd-unit-files.patch
Patch0012: 0012-Don-t-check-for-autostart-sessions-if-iscsi-is-not-u.patch
Patch0013: 0013-Revert-iscsiadm-return-error-when-login-fails.patch
Patch0014: 0014-update-handling-of-boot-sessions.patch
Patch0015: 0015-update-iscsi.service-for-boot-session-recovery.patch
Patch0016: 0016-updates-to-iscsi.service.patch
Patch0017: 0017-make-session-shutdown-a-seperate-service.patch.patch
Patch0018: 0018-Add-macros-to-release-GIL-lock.patch
Patch0019: 0019-libiscsi-introduce-sessions-API.patch
Patch0020: 0020-use-Red-Hat-version-string-to-match-RPM-package-vers.patch
Patch0021: 0021-libiscsi-fix-discovery-request-timeout-regression.patch
Patch0022: 0022-libiscsi-format-security-build-errors.patch
Patch0023: 0023-libiscsi-fix-build-to-use-libopeniscsiusr.patch
Patch0024: 0024-dont-install-scripts.patch
Patch0028: 0028-use-var-lib-iscsi-in-libopeniscsiusr.patch
Patch0029: open-iscsi-2.0.876-66-Allow-reading-sysfs-port-to-fail-gracefully.patch
Patch0030: open-iscsi-2.0.876-67-Fix-incorrect-sysfs-logic-for-port-and-ip-address.patch
Patch0031: open-iscsi-2.0.876-68-Fix-reading-of-sysfs-signed-integers-when-negative.patch
Patch0032: open-iscsi-2.0.876-69-Create-a-new-error-for-target-not-connected.patch
Patch0033: open-iscsi-2.0.876-70-Fix-bug-in-error-message-when-reading-sysfs-numbers.patch
Patch0034: open-iscsi-2.0.876-71-Handle-ENOTCONN-error-separately-when-reading-sysfs-values.patch
Patch0035: open-iscsi-2.0.876-93-Restore-space-in-node-mode-level-0-output.patch
Patch0011: 0013-Revert-iscsiadm-return-error-when-login-fails.patch
Patch0012: 0018-Add-macros-to-release-GIL-lock.patch
Patch0013: 0019-libiscsi-introduce-sessions-API.patch
Patch0014: 0020-use-Red-Hat-version-string-to-match-RPM-package-vers.patch
Patch0015: 0021-libiscsi-fix-discovery-request-timeout-regression.patch
Patch0016: 0022-libiscsi-format-security-build-errors.patch
Patch0017: 0023-libiscsi-fix-build-to-use-libopeniscsiusr.patch
Patch0018: 0024-dont-install-scripts.patch
Patch0019: 0028-use-var-lib-iscsi-in-libopeniscsiusr.patch
Patch0099: 0001-Coverity-scan-fixes.patch
BuildRequires: flex bison doxygen kmod-devel systemd-units
BuildRequires: autoconf automake libtool libmount-devel openssl-devel
BuildRequires: isns-utils-devel
BuildRequires: systemd-devel
# For dir ownership
Requires: %{name}-iscsiuio >= %{version}-%{release}
Requires(post): systemd
@ -353,6 +342,12 @@ fi
%{python3_sitearch}/*
%changelog
* Wed Jun 05 2019 Chris Leech <cleech@redhat.com> - 6.2.0.877-1.gitf71581b
- fix Covscan reported issues from upstream patches
* Tue Jun 04 2019 Chris Leech <cleech@redhat.com> - 6.2.0.877-0.gitf71581b
- 1665317 update to latest upstream for iscsiuio enhancements
* Thu Feb 21 2019 Chris Leech <cleech@redhat.com> - 6.2.0.876-7.gitf3c8e90
- 1647826: fix sysfs and output format regressions in libopeniscsi code