Toshaan Bharvani
3 years ago
commit
b286ac0c8a
28 changed files with 6656 additions and 0 deletions
@ -0,0 +1,28 @@ |
|||||||
|
From 432bbf979ee66ee29bb92e35fd6e3ffb948563e3 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Lee Duncan <lduncan@suse.com> |
||||||
|
Date: Wed, 29 Sep 2021 11:48:16 -0700 |
||||||
|
Subject: [PATCH] Remove dependences from iscsi-init.service |
||||||
|
|
||||||
|
Since iscsid.service depends on it but disables |
||||||
|
default dependencies, iscsi-init.service must |
||||||
|
also disable default dependencies, or a dependency |
||||||
|
loop can be created. |
||||||
|
--- |
||||||
|
etc/systemd/iscsi-init.service | 1 + |
||||||
|
1 file changed, 1 insertion(+) |
||||||
|
|
||||||
|
diff --git a/etc/systemd/iscsi-init.service b/etc/systemd/iscsi-init.service |
||||||
|
index e058ff0..eab4ff2 100644 |
||||||
|
--- a/etc/systemd/iscsi-init.service |
||||||
|
+++ b/etc/systemd/iscsi-init.service |
||||||
|
@@ -1,6 +1,7 @@ |
||||||
|
[Unit] |
||||||
|
Description=One time configuration for iscsi.service |
||||||
|
ConditionPathExists=!/etc/iscsi/initiatorname.iscsi |
||||||
|
+DefaultDependencies=no |
||||||
|
Before=iscsid.service |
||||||
|
|
||||||
|
[Service] |
||||||
|
-- |
||||||
|
2.33.0 |
||||||
|
|
@ -0,0 +1,175 @@ |
|||||||
|
From fd538429be486d057b092e3b9c148add2c5ea9c2 Mon Sep 17 00:00:00 2001 |
||||||
|
From: rpm-build <rpm-build> |
||||||
|
Date: Tue, 4 Jun 2019 13:23:32 -0700 |
||||||
|
Subject: [PATCH 1/1] 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 5e394b9..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-online.target iscsid.service |
||||||
|
-Requires=iscsid.socket iscsi-init.service |
||||||
|
-Wants=network-online.target |
||||||
|
+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 -W |
||||||
|
-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 3fd7dd3..324c593 100644 |
||||||
|
--- a/etc/systemd/iscsid.service |
||||||
|
+++ b/etc/systemd/iscsid.service |
||||||
|
@@ -4,13 +4,12 @@ Documentation=man:iscsid(8) man:iscsiuio(8) man:iscsiadm(8) |
||||||
|
DefaultDependencies=no |
||||||
|
After=network-online.target iscsiuio.service iscsi-init.service |
||||||
|
Before=remote-fs-pre.target |
||||||
|
-Wants=remote-fs-pre.target |
||||||
|
Requires=iscsi-init.service |
||||||
|
|
||||||
|
[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.3 |
||||||
|
|
@ -0,0 +1,54 @@ |
|||||||
|
From 45878c9461298c9da68a626d990dc4ef99e01baa Mon Sep 17 00:00:00 2001 |
||||||
|
From: Chris Leech <cleech@redhat.com> |
||||||
|
Date: Tue, 13 Aug 2013 10:59:44 -0700 |
||||||
|
Subject: [PATCH] idmb_rec_write, check for tpgt first |
||||||
|
|
||||||
|
Factor out the check for a tpgt to a single place, before going crazy on |
||||||
|
the rec files. Makes flow of this function easier to follow, and preps |
||||||
|
for splitting it up. |
||||||
|
--- |
||||||
|
usr/idbm.c | 18 +++++------------- |
||||||
|
1 file changed, 5 insertions(+), 13 deletions(-) |
||||||
|
|
||||||
|
diff --git a/usr/idbm.c b/usr/idbm.c |
||||||
|
index 42c2699..e6ede85 100644 |
||||||
|
--- a/usr/idbm.c |
||||||
|
+++ b/usr/idbm.c |
||||||
|
@@ -2178,6 +2178,10 @@ static int idbm_rec_write(node_rec_t *rec, bool disable_lock) |
||||||
|
goto free_portal; |
||||||
|
} |
||||||
|
|
||||||
|
+ if (rec->tpgt == PORTAL_GROUP_TAG_UNKNOWN) |
||||||
|
+ /* drop down to old style portal as config */ |
||||||
|
+ goto open_conf; |
||||||
|
+ |
||||||
|
rc = stat(portal, &statb); |
||||||
|
if (rc) { |
||||||
|
rc = 0; |
||||||
|
@@ -2186,22 +2190,10 @@ static int idbm_rec_write(node_rec_t *rec, bool disable_lock) |
||||||
|
* set the tgpt. In new versions you must pass all the info in |
||||||
|
* from the start |
||||||
|
*/ |
||||||
|
- if (rec->tpgt == PORTAL_GROUP_TAG_UNKNOWN) |
||||||
|
- /* drop down to old style portal as config */ |
||||||
|
- goto open_conf; |
||||||
|
- else |
||||||
|
- goto mkdir_portal; |
||||||
|
+ goto mkdir_portal; |
||||||
|
} |
||||||
|
|
||||||
|
if (!S_ISDIR(statb.st_mode)) { |
||||||
|
- /* |
||||||
|
- * older iscsiadm versions had you create the config then set |
||||||
|
- * set the tgpt. In new versions you must pass all the info in |
||||||
|
- * from the start |
||||||
|
- */ |
||||||
|
- if (rec->tpgt == PORTAL_GROUP_TAG_UNKNOWN) |
||||||
|
- /* drop down to old style portal as config */ |
||||||
|
- goto open_conf; |
||||||
|
/* |
||||||
|
* Old style portal as a file, but with tpgt. Let's update it. |
||||||
|
*/ |
||||||
|
-- |
||||||
|
2.26.2 |
||||||
|
|
@ -0,0 +1,193 @@ |
|||||||
|
From 0bb22b50dbaa7ac44e8eb244a73a66efbd98632c Mon Sep 17 00:00:00 2001 |
||||||
|
From: Chris Leech <cleech@redhat.com> |
||||||
|
Date: Tue, 13 Aug 2013 11:34:31 -0700 |
||||||
|
Subject: [PATCH 1/1] idbm_rec_write, seperate old and new style writes |
||||||
|
|
||||||
|
Duplicates a small bit of code, but easier to understand and extened. |
||||||
|
--- |
||||||
|
usr/idbm.c | 129 +++++++++++++++++++++++++++++++++++------------------ |
||||||
|
1 file changed, 86 insertions(+), 43 deletions(-) |
||||||
|
|
||||||
|
diff --git a/usr/idbm.c b/usr/idbm.c |
||||||
|
index efdda75..307a01a 100644 |
||||||
|
--- a/usr/idbm.c |
||||||
|
+++ b/usr/idbm.c |
||||||
|
@@ -2152,12 +2152,7 @@ mkdir_portal: |
||||||
|
return f; |
||||||
|
} |
||||||
|
|
||||||
|
-/* |
||||||
|
- * When the disable_lock param is true, the idbm_lock/idbm_unlock needs |
||||||
|
- * to be holt by the caller, this will avoid overwriting each other in |
||||||
|
- * case of updating(read-modify-write) the recs in parallel. |
||||||
|
- */ |
||||||
|
-static int idbm_rec_write(node_rec_t *rec, bool disable_lock) |
||||||
|
+static int idbm_rec_write_new(node_rec_t *rec) |
||||||
|
{ |
||||||
|
struct stat statb; |
||||||
|
FILE *f; |
||||||
|
@@ -2170,39 +2165,8 @@ static int idbm_rec_write(node_rec_t *rec, bool disable_lock) |
||||||
|
return ISCSI_ERR_NOMEM; |
||||||
|
} |
||||||
|
|
||||||
|
- snprintf(portal, PATH_MAX, "%s", NODE_CONFIG_DIR); |
||||||
|
- if (access(portal, F_OK) != 0) { |
||||||
|
- if (mkdir(portal, 0770) != 0) { |
||||||
|
- log_error("Could not make %s: %s", portal, |
||||||
|
- strerror(errno)); |
||||||
|
- rc = ISCSI_ERR_IDBM; |
||||||
|
- goto free_portal; |
||||||
|
- } |
||||||
|
- } |
||||||
|
- |
||||||
|
- snprintf(portal, PATH_MAX, "%s/%s", NODE_CONFIG_DIR, rec->name); |
||||||
|
- if (access(portal, F_OK) != 0) { |
||||||
|
- if (mkdir(portal, 0770) != 0) { |
||||||
|
- log_error("Could not make %s: %s", portal, |
||||||
|
- strerror(errno)); |
||||||
|
- rc = ISCSI_ERR_IDBM; |
||||||
|
- goto free_portal; |
||||||
|
- } |
||||||
|
- } |
||||||
|
- |
||||||
|
snprintf(portal, PATH_MAX, "%s/%s/%s,%d", NODE_CONFIG_DIR, |
||||||
|
rec->name, rec->conn[0].address, rec->conn[0].port); |
||||||
|
- log_debug(5, "Looking for config file %s", portal); |
||||||
|
- |
||||||
|
- if (!disable_lock) { |
||||||
|
- rc = idbm_lock(); |
||||||
|
- if (rc) |
||||||
|
- goto free_portal; |
||||||
|
- } |
||||||
|
- |
||||||
|
- if (rec->tpgt == PORTAL_GROUP_TAG_UNKNOWN) |
||||||
|
- /* drop down to old style portal as config */ |
||||||
|
- goto open_conf; |
||||||
|
|
||||||
|
rc = stat(portal, &statb); |
||||||
|
if (rc) { |
||||||
|
@@ -2223,11 +2187,11 @@ static int idbm_rec_write(node_rec_t *rec, bool disable_lock) |
||||||
|
log_error("Could not convert %s: %s", portal, |
||||||
|
strerror(errno)); |
||||||
|
rc = ISCSI_ERR_IDBM; |
||||||
|
- goto unlock; |
||||||
|
+ goto free_portal; |
||||||
|
} |
||||||
|
} else { |
||||||
|
rc = ISCSI_ERR_INVAL; |
||||||
|
- goto unlock; |
||||||
|
+ goto free_portal; |
||||||
|
} |
||||||
|
|
||||||
|
mkdir_portal: |
||||||
|
@@ -2238,24 +2202,103 @@ mkdir_portal: |
||||||
|
log_error("Could not make dir %s: %s", |
||||||
|
portal, strerror(errno)); |
||||||
|
rc = ISCSI_ERR_IDBM; |
||||||
|
- goto unlock; |
||||||
|
+ goto free_portal; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
snprintf(portal, PATH_MAX, "%s/%s/%s,%d,%d/%s", NODE_CONFIG_DIR, |
||||||
|
rec->name, rec->conn[0].address, rec->conn[0].port, rec->tpgt, |
||||||
|
rec->iface.name); |
||||||
|
-open_conf: |
||||||
|
+ |
||||||
|
f = fopen(portal, "w"); |
||||||
|
if (!f) { |
||||||
|
log_error("Could not open %s: %s", portal, strerror(errno)); |
||||||
|
rc = ISCSI_ERR_IDBM; |
||||||
|
- goto unlock; |
||||||
|
+ goto free_portal; |
||||||
|
} |
||||||
|
|
||||||
|
idbm_print(IDBM_PRINT_TYPE_NODE, rec, 1, f); |
||||||
|
fclose(f); |
||||||
|
-unlock: |
||||||
|
+free_portal: |
||||||
|
+ free(portal); |
||||||
|
+ return rc; |
||||||
|
+} |
||||||
|
+ |
||||||
|
+static int idbm_rec_write_old(node_rec_t *rec) |
||||||
|
+{ |
||||||
|
+ FILE *f; |
||||||
|
+ char *portal; |
||||||
|
+ int rc = 0; |
||||||
|
+ |
||||||
|
+ portal = malloc(PATH_MAX); |
||||||
|
+ if (!portal) { |
||||||
|
+ log_error("Could not alloc portal"); |
||||||
|
+ return ISCSI_ERR_NOMEM; |
||||||
|
+ } |
||||||
|
+ snprintf(portal, PATH_MAX, "%s/%s/%s,%d", NODE_CONFIG_DIR, |
||||||
|
+ rec->name, rec->conn[0].address, rec->conn[0].port); |
||||||
|
+ |
||||||
|
+ f = fopen(portal, "w"); |
||||||
|
+ if (!f) { |
||||||
|
+ log_error("Could not open %s: %sd", portal, strerror(errno)); |
||||||
|
+ rc = ISCSI_ERR_IDBM; |
||||||
|
+ goto free_portal; |
||||||
|
+ } |
||||||
|
+ idbm_print(IDBM_PRINT_TYPE_NODE, rec, 1, f); |
||||||
|
+ fclose(f); |
||||||
|
+free_portal: |
||||||
|
+ free(portal); |
||||||
|
+ return rc; |
||||||
|
+} |
||||||
|
+ |
||||||
|
+/* |
||||||
|
+ * When the disable_lock param is true, the idbm_lock/idbm_unlock needs |
||||||
|
+ * to be holt by the caller, this will avoid overwriting each other in |
||||||
|
+ * case of updating(read-modify-write) the recs in parallel. |
||||||
|
+ */ |
||||||
|
+static int idbm_rec_write(node_rec_t *rec, bool disable_lock) |
||||||
|
+{ |
||||||
|
+ char *portal; |
||||||
|
+ int rc = 0; |
||||||
|
+ |
||||||
|
+ portal = malloc(PATH_MAX); |
||||||
|
+ if (!portal) { |
||||||
|
+ log_error("Could not alloc portal"); |
||||||
|
+ return ISCSI_ERR_NOMEM; |
||||||
|
+ } |
||||||
|
+ |
||||||
|
+ snprintf(portal, PATH_MAX, "%s", NODE_CONFIG_DIR); |
||||||
|
+ if (access(portal, F_OK) != 0) { |
||||||
|
+ if (mkdir(portal, 0660) != 0) { |
||||||
|
+ log_error("Could not make %s: %s", portal, |
||||||
|
+ strerror(errno)); |
||||||
|
+ rc = ISCSI_ERR_IDBM; |
||||||
|
+ goto free_portal; |
||||||
|
+ } |
||||||
|
+ } |
||||||
|
+ |
||||||
|
+ snprintf(portal, PATH_MAX, "%s/%s", NODE_CONFIG_DIR, rec->name); |
||||||
|
+ if (access(portal, F_OK) != 0) { |
||||||
|
+ if (mkdir(portal, 0660) != 0) { |
||||||
|
+ log_error("Could not make %s: %s", portal, |
||||||
|
+ strerror(errno)); |
||||||
|
+ rc = ISCSI_ERR_IDBM; |
||||||
|
+ goto free_portal; |
||||||
|
+ } |
||||||
|
+ } |
||||||
|
+ |
||||||
|
+ if (!disable_lock) { |
||||||
|
+ rc = idbm_lock(); |
||||||
|
+ if (rc) |
||||||
|
+ goto free_portal; |
||||||
|
+ } |
||||||
|
+ |
||||||
|
+ if (rec->tpgt == PORTAL_GROUP_TAG_UNKNOWN) |
||||||
|
+ /* old style portal as config */ |
||||||
|
+ rc = idbm_rec_write_old(rec); |
||||||
|
+ else |
||||||
|
+ rc = idbm_rec_write_new(rec); |
||||||
|
+ |
||||||
|
if (!disable_lock) |
||||||
|
idbm_unlock(); |
||||||
|
free_portal: |
||||||
|
-- |
||||||
|
2.26.3 |
||||||
|
|
@ -0,0 +1,87 @@ |
|||||||
|
From 2b1c0c5f1f2dbc516a9b51950a82eac091dbce2c Mon Sep 17 00:00:00 2001 |
||||||
|
From: Chris Leech <cleech@redhat.com> |
||||||
|
Date: Tue, 13 Aug 2013 12:39:07 -0700 |
||||||
|
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 |
||||||
|
record without. If one exists, take the tpgt from it an write an |
||||||
|
updated new style record instead. |
||||||
|
--- |
||||||
|
usr/idbm.c | 40 ++++++++++++++++++++++++++++++++++++++++ |
||||||
|
1 file changed, 40 insertions(+) |
||||||
|
|
||||||
|
diff --git a/usr/idbm.c b/usr/idbm.c |
||||||
|
index bc51388..f1e5c88 100644 |
||||||
|
--- a/usr/idbm.c |
||||||
|
+++ b/usr/idbm.c |
||||||
|
@@ -28,6 +28,7 @@ |
||||||
|
#include <dirent.h> |
||||||
|
#include <limits.h> |
||||||
|
#include <fcntl.h> |
||||||
|
+#include <glob.h> |
||||||
|
#include <sys/stat.h> |
||||||
|
#include <sys/file.h> |
||||||
|
#include <inttypes.h> |
||||||
|
@@ -203,6 +204,8 @@ static struct int_list_tbl { |
||||||
|
{ "SHA3-256", AUTH_CHAP_ALG_SHA3_256 }, |
||||||
|
}; |
||||||
|
|
||||||
|
+static int idbm_remove_disc_to_node_link(node_rec_t *rec, char *portal); |
||||||
|
+ |
||||||
|
static void |
||||||
|
idbm_recinfo_discovery(discovery_rec_t *r, recinfo_t *ri) |
||||||
|
{ |
||||||
|
@@ -2207,12 +2210,49 @@ static int idbm_rec_write_old(node_rec_t *rec) |
||||||
|
FILE *f; |
||||||
|
char *portal; |
||||||
|
int rc = 0; |
||||||
|
+ glob_t globbuf; |
||||||
|
+ size_t i; |
||||||
|
+ int tpgt = PORTAL_GROUP_TAG_UNKNOWN; |
||||||
|
|
||||||
|
portal = malloc(PATH_MAX); |
||||||
|
if (!portal) { |
||||||
|
log_error("Could not alloc portal"); |
||||||
|
return ISCSI_ERR_NOMEM; |
||||||
|
} |
||||||
|
+ |
||||||
|
+ /* check for newer portal dir with tpgt */ |
||||||
|
+ snprintf(portal, PATH_MAX, "%s/%s/%s,%d,*", NODE_CONFIG_DIR, |
||||||
|
+ rec->name, rec->conn[0].address, rec->conn[0].port); |
||||||
|
+ rc = glob(portal, GLOB_ONLYDIR, NULL, &globbuf); |
||||||
|
+ if (!rc) { |
||||||
|
+ if (globbuf.gl_pathc > 1) |
||||||
|
+ log_warning("multiple tpg records for portal " |
||||||
|
+ "%s/%s:%d found", rec->name, |
||||||
|
+ rec->conn[0].address, rec->conn[0].port); |
||||||
|
+ /* set pattern for sscanf matching of tpgt */ |
||||||
|
+ snprintf(portal, PATH_MAX, "%s/%s/%s,%d,%%u", NODE_CONFIG_DIR, |
||||||
|
+ rec->name, rec->conn[0].address, rec->conn[0].port); |
||||||
|
+ for (i = 0; i < globbuf.gl_pathc; i++) { |
||||||
|
+ rc = sscanf(globbuf.gl_pathv[i], portal, &tpgt); |
||||||
|
+ if (rc == 1) |
||||||
|
+ break; |
||||||
|
+ } |
||||||
|
+ if (tpgt == PORTAL_GROUP_TAG_UNKNOWN) |
||||||
|
+ log_warning("glob match on existing records, " |
||||||
|
+ "but no valid tpgt found"); |
||||||
|
+ } |
||||||
|
+ globfree(&globbuf); |
||||||
|
+ rc = 0; |
||||||
|
+ |
||||||
|
+ /* if a tpgt was selected from an old record, write entry in new format */ |
||||||
|
+ if (tpgt != PORTAL_GROUP_TAG_UNKNOWN) { |
||||||
|
+ log_warning("using tpgt %u from existing record", tpgt); |
||||||
|
+ rec->tpgt = tpgt; |
||||||
|
+ rc = idbm_remove_disc_to_node_link(rec, portal); |
||||||
|
+ free(portal); |
||||||
|
+ return idbm_rec_write_new(rec); |
||||||
|
+ } |
||||||
|
+ |
||||||
|
snprintf(portal, PATH_MAX, "%s/%s/%s,%d", NODE_CONFIG_DIR, |
||||||
|
rec->name, rec->conn[0].address, rec->conn[0].port); |
||||||
|
|
||||||
|
-- |
||||||
|
2.26.2 |
||||||
|
|
@ -0,0 +1,134 @@ |
|||||||
|
From 97b1242450df25648d203acf7cc297cd46d10e8c Mon Sep 17 00:00:00 2001 |
||||||
|
From: Chris Leech <cleech@redhat.com> |
||||||
|
Date: Mon, 19 Nov 2012 16:37:13 -0800 |
||||||
|
Subject: [PATCH] update initscripts and docs |
||||||
|
|
||||||
|
--- |
||||||
|
README | 12 +++++------- |
||||||
|
etc/iscsid.conf | 23 +++++++++++------------ |
||||||
|
usr/idbm.c | 4 ++++ |
||||||
|
3 files changed, 20 insertions(+), 19 deletions(-) |
||||||
|
|
||||||
|
diff --git a/README b/README |
||||||
|
index 508c9d7..b62a14e 100644 |
||||||
|
--- a/README |
||||||
|
+++ b/README |
||||||
|
@@ -77,11 +77,6 @@ the cache sync command will fail. |
||||||
|
- iscsiadm's -P 3 option will not print out scsi devices. |
||||||
|
- iscsid will not automatically online devices. |
||||||
|
|
||||||
|
-You need to enable "Cryptographic API" under "Cryptographic options" in the |
||||||
|
-kernel config. And you must enable "CRC32c CRC algorithm" even if |
||||||
|
-you do not use header or data digests. They are the kernel options |
||||||
|
-CONFIG_CRYPTO and CONFIG_CRYPTO_CRC32C, respectively. |
||||||
|
- |
||||||
|
The userspace components iscsid, iscsiadm and iscsistart require the |
||||||
|
open-isns library, which can be found here: |
||||||
|
https://github.com/gonzoleeman/open-isns/releases |
||||||
|
@@ -1163,11 +1158,11 @@ Red Hat or Fedora: |
||||||
|
----------------- |
||||||
|
To start open-iscsi in Red Hat/Fedora you can do: |
||||||
|
|
||||||
|
- systemctl start open-iscsi |
||||||
|
+ systemctl start iscsi |
||||||
|
|
||||||
|
To get open-iscsi to automatically start at run time you may have to |
||||||
|
run: |
||||||
|
- systemctl enable open-iscsi |
||||||
|
+ systemctl enable iscsi |
||||||
|
|
||||||
|
And, to automatically mount a file system during startup |
||||||
|
you must have the partition entry in /etc/fstab marked with the "_netdev" |
||||||
|
@@ -1370,6 +1365,9 @@ iscsid will only perform rediscovery when it gets a SCN from the server. |
||||||
|
# linux-isns (SLES's iSNS server) where it sometimes does not send SCN |
||||||
|
# events in the proper format, so they may not get handled. |
||||||
|
|
||||||
|
+To set the startup value, so that nodes are not logged into automatically |
||||||
|
+use the value "manual". |
||||||
|
+ |
||||||
|
Examples |
||||||
|
-------- |
||||||
|
|
||||||
|
diff --git a/etc/iscsid.conf b/etc/iscsid.conf |
||||||
|
index f21ed3d..420145b 100644 |
||||||
|
--- a/etc/iscsid.conf |
||||||
|
+++ b/etc/iscsid.conf |
||||||
|
@@ -19,8 +19,8 @@ |
||||||
|
# the time then leave this attribute commented out. |
||||||
|
# |
||||||
|
# Default for Fedora and RHEL. (uncomment to activate). |
||||||
|
-# iscsid.startup = /bin/systemctl start iscsid.socket iscsiuio.socket |
||||||
|
-# |
||||||
|
+iscsid.startup = /bin/systemctl start iscsid.socket iscsiuio.socket |
||||||
|
+# |
||||||
|
# Default if you are not using systemd (uncomment to activate) |
||||||
|
# iscsid.startup = /usr/bin/service start iscsid |
||||||
|
|
||||||
|
@@ -41,8 +41,8 @@ |
||||||
|
# To request that the iscsi initd scripts startup a session set to "automatic". |
||||||
|
# node.startup = automatic |
||||||
|
# |
||||||
|
-# To manually startup the session set to "manual". The default is manual. |
||||||
|
-node.startup = manual |
||||||
|
+# To manually startup the session set to "manual". The default is automatic. |
||||||
|
+node.startup = automatic |
||||||
|
|
||||||
|
# For "automatic" startup nodes, setting this to "Yes" will try logins on each |
||||||
|
# available iface until one succeeds, and then stop. The default "No" will try |
||||||
|
@@ -271,28 +271,27 @@ node.conn[0].iscsi.MaxXmitDataSegmentLength = 0 |
||||||
|
discovery.sendtargets.iscsi.MaxRecvDataSegmentLength = 32768 |
||||||
|
|
||||||
|
# To allow the targets to control the setting of the digest checking, |
||||||
|
-# with the initiator requesting a preference of enabling the checking, uncomment# one or both of the following lines: |
||||||
|
+# with the initiator requesting a preference of enabling the checking, uncomment |
||||||
|
+# the following lines (Data digests are not supported.): |
||||||
|
#node.conn[0].iscsi.HeaderDigest = CRC32C,None |
||||||
|
-#node.conn[0].iscsi.DataDigest = CRC32C,None |
||||||
|
+ |
||||||
|
# |
||||||
|
# To allow the targets to control the setting of the digest checking, |
||||||
|
# with the initiator requesting a preference of disabling the checking, |
||||||
|
-# uncomment one or both of the following lines: |
||||||
|
+# uncomment the following line: |
||||||
|
#node.conn[0].iscsi.HeaderDigest = None,CRC32C |
||||||
|
-#node.conn[0].iscsi.DataDigest = None,CRC32C |
||||||
|
# |
||||||
|
# To enable CRC32C digest checking for the header and/or data part of |
||||||
|
-# iSCSI PDUs, uncomment one or both of the following lines: |
||||||
|
+# iSCSI PDUs, uncomment the following line: |
||||||
|
#node.conn[0].iscsi.HeaderDigest = CRC32C |
||||||
|
-#node.conn[0].iscsi.DataDigest = CRC32C |
||||||
|
# |
||||||
|
# To disable digest checking for the header and/or data part of |
||||||
|
-# iSCSI PDUs, uncomment one or both of the following lines: |
||||||
|
+# iSCSI PDUs, uncomment the following line: |
||||||
|
#node.conn[0].iscsi.HeaderDigest = None |
||||||
|
-#node.conn[0].iscsi.DataDigest = None |
||||||
|
# |
||||||
|
# The default is to never use DataDigests or HeaderDigests. |
||||||
|
# |
||||||
|
+node.conn[0].iscsi.HeaderDigest = None |
||||||
|
|
||||||
|
# For multipath configurations, you may want more than one session to be |
||||||
|
# created on each iface record. If node.session.nr_sessions is greater |
||||||
|
diff --git a/usr/idbm.c b/usr/idbm.c |
||||||
|
index f1e5c88..0f0f17a 100644 |
||||||
|
--- a/usr/idbm.c |
||||||
|
+++ b/usr/idbm.c |
||||||
|
@@ -566,9 +566,13 @@ idbm_recinfo_node(node_rec_t *r, recinfo_t *ri) |
||||||
|
IDBM_SHOW, "None", "CRC32C", "CRC32C,None", |
||||||
|
"None,CRC32C", num, 1); |
||||||
|
sprintf(key, CONN_DATA_DIGEST, i); |
||||||
|
+ |
||||||
|
+#if 0 |
||||||
|
+We do not support data digests |
||||||
|
__recinfo_int_o4(key, ri, r, conn[i].iscsi.DataDigest, IDBM_SHOW, |
||||||
|
"None", "CRC32C", "CRC32C,None", |
||||||
|
"None,CRC32C", num, 1); |
||||||
|
+#endif |
||||||
|
sprintf(key, CONN_IFMARKER, i); |
||||||
|
__recinfo_int_o2(key, ri, r, conn[i].iscsi.IFMarker, IDBM_SHOW, |
||||||
|
"No", "Yes", num, 1); |
||||||
|
-- |
||||||
|
2.26.2 |
||||||
|
|
@ -0,0 +1,255 @@ |
|||||||
|
From f7c6a7381a38ca59fd7a9a64e5f54cf5c16995ad Mon Sep 17 00:00:00 2001 |
||||||
|
From: Chris Leech <cleech@redhat.com> |
||||||
|
Date: Mon, 19 Nov 2012 16:38:45 -0800 |
||||||
|
Subject: [PATCH 1/1] 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 ++- |
||||||
|
6 files changed, 33 insertions(+), 32 deletions(-) |
||||||
|
|
||||||
|
diff --git a/README b/README |
||||||
|
index b62a14e..1875e3d 100644 |
||||||
|
--- a/README |
||||||
|
+++ b/README |
||||||
|
@@ -172,8 +172,7 @@ Usage: iscsid [OPTION] |
||||||
|
|
||||||
|
Open-iSCSI persistent configuration is stored in a number of |
||||||
|
directories under a configuration root directory, using a flat-file |
||||||
|
-format. This configuration root directory is /etc/iscsi by default, |
||||||
|
-but may also commonly be in /var/lib/iscsi. |
||||||
|
+format. This configuration root directory is /var/lib/iscsi by default. |
||||||
|
|
||||||
|
Configuration is contained in directories for: |
||||||
|
|
||||||
|
@@ -573,7 +572,7 @@ a scsi_host per HBA port). |
||||||
|
To manage both types of initiator stacks, iscsiadm uses the interface (iface) |
||||||
|
structure. For each HBA port or for software iscsi for each network |
||||||
|
device (ethX) or NIC, that you wish to bind sessions to you must create |
||||||
|
-a iface config /etc/iscsi/ifaces. |
||||||
|
+a iface config /var/lib/iscsi/ifaces. |
||||||
|
|
||||||
|
Prep |
||||||
|
---- |
||||||
|
@@ -606,7 +605,7 @@ Running |
||||||
|
The command |
||||||
|
iscsiadm -m iface |
||||||
|
|
||||||
|
-will report iface configurations that are setup in /etc/iscsi/ifaces: |
||||||
|
+will report iface configurations that are setup in /var/lib/iscsi/ifaces: |
||||||
|
|
||||||
|
iface0 qla4xxx,00:c0:dd:08:63:e8,20.15.0.7,default,iqn.2005-06.com.redhat:madmax |
||||||
|
iface1 qla4xxx,00:c0:dd:08:63:ea,20.15.0.9,default,iqn.2005-06.com.redhat:madmax |
||||||
|
@@ -616,10 +615,10 @@ The format is: |
||||||
|
|
||||||
|
For software iscsi, you can create the iface configs by hand, but it is |
||||||
|
recommended that you use iscsiadm's iface mode. There is an iface.example in |
||||||
|
-/etc/iscsi/ifaces which can be used as a template for the daring. |
||||||
|
+/var/lib/iscsi/ifaces which can be used as a template for the daring. |
||||||
|
|
||||||
|
For each network object you wish to bind a session to, you must create |
||||||
|
-a separate iface config in /etc/iscsi/ifaces and each iface config file |
||||||
|
+a separate iface config in /var/lib/iscsi/ifaces and each iface config file |
||||||
|
must have a unique name which is less than or equal to 64 characters. |
||||||
|
|
||||||
|
Example |
||||||
|
@@ -627,12 +626,12 @@ Example |
||||||
|
|
||||||
|
If you have NIC1 with MAC address 00:0F:1F:92:6B:BF and NIC2 with |
||||||
|
MAC address 00:C0:DD:08:63:E7, and you wanted to do software iscsi over |
||||||
|
-TCP/IP, then in /etc/iscsi/ifaces/iface0 you would enter: |
||||||
|
+TCP/IP, then in /var/lib/iscsi/ifaces/iface0 you would enter: |
||||||
|
|
||||||
|
iface.transport_name = tcp |
||||||
|
iface.hwaddress = 00:0F:1F:92:6B:BF |
||||||
|
|
||||||
|
-and in /etc/iscsi/ifaces/iface1 you would enter: |
||||||
|
+and in /var/lib/iscsi/ifaces/iface1 you would enter: |
||||||
|
|
||||||
|
iface.transport_name = tcp |
||||||
|
iface.hwaddress = 00:C0:DD:08:63:E7 |
||||||
|
@@ -674,7 +673,7 @@ port. The iface name will be of the form: |
||||||
|
Running the following command: |
||||||
|
iscsiadm -m iface |
||||||
|
|
||||||
|
-will report iface configurations that are setup in /etc/iscsi/ifaces: |
||||||
|
+will report iface configurations that are setup in /var/lib/iscsi/ifaces: |
||||||
|
|
||||||
|
default tcp,<empty>,<empty>,<empty>,<empty> |
||||||
|
iser iser,<empty>,<empty>,<empty>,<empty> |
||||||
|
@@ -754,7 +753,7 @@ need a separate network connection to the target for discovery purposes. |
||||||
|
*This will be fixed in the next version of open-iscsi* |
||||||
|
|
||||||
|
For compatibility reasons, when you run iscsiadm to do discovery, it |
||||||
|
-will check for interfaces in /etc/iscsi/iscsi/ifaces that are using |
||||||
|
+will check for interfaces in /var/lib/iscsi/iscsi/ifaces that are using |
||||||
|
tcp for the iface.transport, and it will bind the portals that are discovered |
||||||
|
so that they will be logged in through those ifaces. This behavior can also |
||||||
|
be overridden by passing in the interfaces you want to use. For the case |
||||||
|
@@ -769,7 +768,7 @@ If you had defined interfaces but wanted the old behavior, where we do not |
||||||
|
bind a session to an iface, then you can use the special iface "default": |
||||||
|
iscsiadm -m discoverydb -t st -p ip:port -I default --discover -P 1 |
||||||
|
|
||||||
|
-And if you did not define any interfaces in /etc/iscsi/ifaces and do |
||||||
|
+And if you did not define any interfaces in /var/lib/iscsi/ifaces and do |
||||||
|
not pass anything into iscsiadm, running iscsiadm will do the default |
||||||
|
behavior, allowing the network subsystem to decide which device to use. |
||||||
|
|
||||||
|
@@ -805,7 +804,7 @@ Discovery mode |
||||||
|
ID [192.168.1.1:3260]: |
||||||
|
iscsiadm -m discoverydb -t st -p 192.168.1.1:3260 --discover |
||||||
|
|
||||||
|
- This will search /etc/iscsi/send_targets for a record with the |
||||||
|
+ This will search /var/lib/iscsi/send_targets for a record with the |
||||||
|
ID [portal = 192.168.1.1:3260 and type = sendtargets. If found it |
||||||
|
will perform discovery using the settings stored in the record. |
||||||
|
If a record does not exist, it will be created using the iscsid.conf |
||||||
|
@@ -814,7 +813,7 @@ Discovery mode |
||||||
|
The argument to -p may also be a hostname instead of an address: |
||||||
|
iscsiadm -m discoverydb -t st -p somehost --discover |
||||||
|
|
||||||
|
- For the ifaces, iscsiadm will first search /etc/iscsi/ifaces for |
||||||
|
+ For the ifaces, iscsiadm will first search /var/lib/iscsi/ifaces for |
||||||
|
interfaces using software iscsi. If any are found then nodes found |
||||||
|
during discovery will be setup so that they can logged in through |
||||||
|
those interfaces. To specify a specific iface, pass the |
||||||
|
@@ -865,7 +864,7 @@ Discovery mode |
||||||
|
|
||||||
|
- SendTargets iSCSI Discovery with a specific interface. |
||||||
|
If you wish to only use a subset of the interfaces in |
||||||
|
- /etc/iscsi/ifaces, then you can pass them in during discovery: |
||||||
|
+ /var/lib/iscsi/ifaces, then you can pass them in during discovery: |
||||||
|
iscsiadm -m discoverydb -t sendtargets -p 192.168.1.1:3260 \ |
||||||
|
--interface=iface0 --interface=iface1 --discover |
||||||
|
|
||||||
|
@@ -1232,8 +1231,8 @@ where targetname is the name of the target and ip_address:port is the address |
||||||
|
and port of the portal. tpgt is the Target Portal Group Tag of |
||||||
|
the portal, and is not used in iscsiadm commands except for static |
||||||
|
record creation. ifacename is the name of the iscsi interface |
||||||
|
-defined in /etc/iscsi/ifaces. If no interface was defined in |
||||||
|
-/etc/iscsi/ifaces or passed in, the default behavior is used. |
||||||
|
+defined in /var/lib/iscsi/ifaces. If no interface was defined in |
||||||
|
+/var/lib/iscsi/ifaces or passed in, the default behavior is used. |
||||||
|
Default here is iscsi_tcp/tcp to be used over whichever NIC the |
||||||
|
network layer decides is best. |
||||||
|
|
||||||
|
@@ -1353,7 +1352,7 @@ If set, iscsid will perform discovery to the address every |
||||||
|
discovery.isns.discoveryd_poll_inval or |
||||||
|
discovery.sendtargets.discoveryd_poll_inval seconds, |
||||||
|
and it will log into any portals found from the discovery source using |
||||||
|
-the ifaces in /etc/iscsi/ifaces. |
||||||
|
+the ifaces in /var/lib/iscsi/ifaces. |
||||||
|
|
||||||
|
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 3729a72..9f84a81 100644 |
||||||
|
--- a/doc/iscsiadm.8 |
||||||
|
+++ b/doc/iscsiadm.8 |
||||||
|
@@ -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. |
||||||
|
-iSCSI interfaces (iface) are defined in /etc/iscsi/ifaces. For hardware |
||||||
|
+iSCSI interfaces (iface) are defined in /var/lib/iscsi/ifaces. For hardware |
||||||
|
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 |
||||||
|
\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 |
||||||
|
In node mode, specify a field \fIname\fR in a record. In flashnode submode |
||||||
|
@@ -681,10 +681,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 |
||||||
|
-/etc/iscsi/nodes/ |
||||||
|
+/var/lib/iscsi/nodes/ |
||||||
|
This directory contains the nodes with their targets. |
||||||
|
.TP |
||||||
|
-/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 db996b4..eaa9c3b 100644 |
||||||
|
--- a/doc/iscsid.8 |
||||||
|
+++ b/doc/iscsid.8 |
||||||
|
@@ -70,7 +70,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 7c63c04..779d052 100644 |
||||||
|
--- a/usr/idbm.c |
||||||
|
+++ b/usr/idbm.c |
||||||
|
@@ -3104,9 +3104,9 @@ free_info: |
||||||
|
int idbm_init(idbm_get_config_file_fn *fn) |
||||||
|
{ |
||||||
|
/* make sure root db dir is there */ |
||||||
|
- if (access(ISCSI_CONFIG_ROOT, F_OK) != 0) { |
||||||
|
- if (mkdir(ISCSI_CONFIG_ROOT, 0770) != 0) { |
||||||
|
- log_error("Could not make %s %d", ISCSI_CONFIG_ROOT, |
||||||
|
+ if (access(ISCSIVAR, F_OK) != 0) { |
||||||
|
+ if (mkdir(ISCSIVAR, 0770) != 0) { |
||||||
|
+ log_error("Could not make %s %d", ISCSIVAR, |
||||||
|
errno); |
||||||
|
return errno; |
||||||
|
} |
||||||
|
diff --git a/usr/idbm.h b/usr/idbm.h |
||||||
|
index 7496f1d..db3048b 100644 |
||||||
|
--- a/usr/idbm.h |
||||||
|
+++ b/usr/idbm.h |
||||||
|
@@ -30,12 +30,13 @@ |
||||||
|
#include "list.h" |
||||||
|
#include "flashnode.h" |
||||||
|
|
||||||
|
-#define NODE_CONFIG_DIR ISCSI_CONFIG_ROOT"nodes" |
||||||
|
-#define SLP_CONFIG_DIR ISCSI_CONFIG_ROOT"slp" |
||||||
|
-#define ISNS_CONFIG_DIR ISCSI_CONFIG_ROOT"isns" |
||||||
|
-#define STATIC_CONFIG_DIR ISCSI_CONFIG_ROOT"static" |
||||||
|
-#define FW_CONFIG_DIR ISCSI_CONFIG_ROOT"fw" |
||||||
|
-#define ST_CONFIG_DIR ISCSI_CONFIG_ROOT"send_targets" |
||||||
|
+#define ISCSIVAR "/var/lib/iscsi/" |
||||||
|
+#define NODE_CONFIG_DIR ISCSIVAR"nodes" |
||||||
|
+#define SLP_CONFIG_DIR ISCSIVAR"slp" |
||||||
|
+#define ISNS_CONFIG_DIR ISCSIVAR"isns" |
||||||
|
+#define STATIC_CONFIG_DIR ISCSIVAR"static" |
||||||
|
+#define FW_CONFIG_DIR ISCSIVAR"fw" |
||||||
|
+#define ST_CONFIG_DIR ISCSIVAR"send_targets" |
||||||
|
#define ST_CONFIG_NAME "st_config" |
||||||
|
#define ISNS_CONFIG_NAME "isns_config" |
||||||
|
|
||||||
|
diff --git a/usr/iface.h b/usr/iface.h |
||||||
|
index 6c06f7f..c8b9de9 100644 |
||||||
|
--- a/usr/iface.h |
||||||
|
+++ b/usr/iface.h |
||||||
|
@@ -21,8 +21,9 @@ |
||||||
|
#define ISCSI_IFACE_H |
||||||
|
|
||||||
|
#include <libopeniscsiusr/libopeniscsiusr.h> |
||||||
|
+#include "idbm.h" |
||||||
|
|
||||||
|
-#define IFACE_CONFIG_DIR ISCSI_CONFIG_ROOT"ifaces" |
||||||
|
+#define IFACE_CONFIG_DIR ISCSIVAR"ifaces" |
||||||
|
|
||||||
|
struct iface_rec; |
||||||
|
struct list_head; |
||||||
|
-- |
||||||
|
2.26.3 |
||||||
|
|
@ -0,0 +1,39 @@ |
|||||||
|
From 8312003a6a9e41d8d20eb8225ec8c4b2860351ec Mon Sep 17 00:00:00 2001 |
||||||
|
From: Chris Leech <cleech@redhat.com> |
||||||
|
Date: Mon, 19 Nov 2012 16:40:04 -0800 |
||||||
|
Subject: [PATCH] use red hat for name |
||||||
|
|
||||||
|
--- |
||||||
|
doc/iscsi-iname.8 | 2 +- |
||||||
|
utils/iscsi-iname.c | 2 +- |
||||||
|
2 files changed, 2 insertions(+), 2 deletions(-) |
||||||
|
|
||||||
|
diff --git a/doc/iscsi-iname.8 b/doc/iscsi-iname.8 |
||||||
|
index 6a413f6..dd77ed9 100644 |
||||||
|
--- a/doc/iscsi-iname.8 |
||||||
|
+++ b/doc/iscsi-iname.8 |
||||||
|
@@ -14,7 +14,7 @@ generates a unique iSCSI node name on every invocation. |
||||||
|
Display help |
||||||
|
.TP |
||||||
|
.BI [-p=]\fIprefix\fP |
||||||
|
-Use the prefix passed in instead of the default "iqn.2016-04.com.open-iscsi" |
||||||
|
+Use the prefix passed in instead of the default "iqn.1994-05.com.redhat" |
||||||
|
|
||||||
|
.SH AUTHORS |
||||||
|
Open-iSCSI project <http://www.open-iscsi.com/> |
||||||
|
diff --git a/utils/iscsi-iname.c b/utils/iscsi-iname.c |
||||||
|
index 0f587e1..0e15650 100644 |
||||||
|
--- a/utils/iscsi-iname.c |
||||||
|
+++ b/utils/iscsi-iname.c |
||||||
|
@@ -89,7 +89,7 @@ main(int argc, char *argv[]) |
||||||
|
exit(0); |
||||||
|
} |
||||||
|
} else { |
||||||
|
- prefix = "iqn.2016-04.com.open-iscsi"; |
||||||
|
+ prefix = "iqn.1994-05.com.redhat"; |
||||||
|
} |
||||||
|
|
||||||
|
/* try to feed some entropy from the pool to MD5 in order to get |
||||||
|
-- |
||||||
|
2.26.2 |
||||||
|
|
@ -0,0 +1,56 @@ |
|||||||
|
From 676f48d6e70f8406b36a004669d923825db51e2f Mon Sep 17 00:00:00 2001 |
||||||
|
From: Jiri Konecny <jkonecny@redhat.com> |
||||||
|
Date: Mon, 11 May 2015 13:16:26 +0200 |
||||||
|
Subject: [PATCH] Add macros to release GIL lock |
||||||
|
|
||||||
|
Other threads are blocked when GIL is not released before the time consuming |
||||||
|
functions. |
||||||
|
--- |
||||||
|
libiscsi/pylibiscsi.c | 16 +++++++++++++--- |
||||||
|
1 file changed, 13 insertions(+), 3 deletions(-) |
||||||
|
|
||||||
|
diff --git a/libiscsi/pylibiscsi.c b/libiscsi/pylibiscsi.c |
||||||
|
index 8800853..40b5955 100644 |
||||||
|
--- a/libiscsi/pylibiscsi.c |
||||||
|
+++ b/libiscsi/pylibiscsi.c |
||||||
|
@@ -364,8 +364,13 @@ static PyObject *PyIscsiNode_str(PyObject *self) |
||||||
|
static PyObject *PyIscsiNode_login(PyObject *self) |
||||||
|
{ |
||||||
|
PyIscsiNode *node = (PyIscsiNode *)self; |
||||||
|
+ int ret; |
||||||
|
|
||||||
|
- if (libiscsi_node_login(context, &node->node)) { |
||||||
|
+ Py_BEGIN_ALLOW_THREADS |
||||||
|
+ ret = libiscsi_node_login(context, &node->node); |
||||||
|
+ Py_END_ALLOW_THREADS |
||||||
|
+ |
||||||
|
+ if (ret) { |
||||||
|
PyErr_SetString(PyExc_IOError, |
||||||
|
libiscsi_get_error_string(context)); |
||||||
|
return NULL; |
||||||
|
@@ -551,6 +556,7 @@ static PyObject *pylibiscsi_discover_sendtargets(PyObject *self, |
||||||
|
const struct libiscsi_auth_info *authinfo = NULL; |
||||||
|
struct libiscsi_node *found_nodes; |
||||||
|
PyObject* found_node_list; |
||||||
|
+ int ret; |
||||||
|
|
||||||
|
if (!PyArg_ParseTupleAndKeywords(args, kwds, "s|iO", |
||||||
|
kwlist, &address, &port, |
||||||
|
@@ -570,8 +576,12 @@ static PyObject *pylibiscsi_discover_sendtargets(PyObject *self, |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
- if (libiscsi_discover_sendtargets(context, address, port, authinfo, |
||||||
|
- &nr_found, &found_nodes)) { |
||||||
|
+ Py_BEGIN_ALLOW_THREADS |
||||||
|
+ ret = libiscsi_discover_sendtargets(context, address, port, authinfo, |
||||||
|
+ &nr_found, &found_nodes); |
||||||
|
+ Py_END_ALLOW_THREADS |
||||||
|
+ |
||||||
|
+ if (ret) { |
||||||
|
PyErr_SetString(PyExc_IOError, |
||||||
|
libiscsi_get_error_string(context)); |
||||||
|
return NULL; |
||||||
|
-- |
||||||
|
2.26.2 |
||||||
|
|
@ -0,0 +1,290 @@ |
|||||||
|
From 2c28c620727e522f022689312d76f107eb8ef18f Mon Sep 17 00:00:00 2001 |
||||||
|
From: Peter Hatina <phatina@redhat.com> |
||||||
|
Date: Mon, 5 Oct 2015 16:50:36 -0700 |
||||||
|
Subject: [PATCH] libiscsi introduce sessions API |
||||||
|
|
||||||
|
--- |
||||||
|
libiscsi/libiscsi.c | 125 ++++++++++++++++++++++++++++++++++++++++++++ |
||||||
|
libiscsi/libiscsi.h | 56 ++++++++++++++++++++ |
||||||
|
usr/iscsi_sysfs.c | 6 +++ |
||||||
|
usr/iscsi_sysfs.h | 2 + |
||||||
|
4 files changed, 189 insertions(+) |
||||||
|
|
||||||
|
diff --git a/libiscsi/libiscsi.c b/libiscsi/libiscsi.c |
||||||
|
index 064e4b5..755c18c 100644 |
||||||
|
--- a/libiscsi/libiscsi.c |
||||||
|
+++ b/libiscsi/libiscsi.c |
||||||
|
@@ -3,6 +3,7 @@ |
||||||
|
* |
||||||
|
* Copyright (C) 2008-2009 Red Hat, Inc. All rights reserved. |
||||||
|
* Copyright (C) 2008-2009 Hans de Goede <hdegoede@redhat.com> |
||||||
|
+ * Copyright (C) 2015 Peter Hatina <phatina@redhat.com> |
||||||
|
* maintained by open-iscsi@googlegroups.com |
||||||
|
* |
||||||
|
* This program is free software; you can redistribute it and/or modify |
||||||
|
@@ -469,6 +470,130 @@ leave: |
||||||
|
return rc; |
||||||
|
} |
||||||
|
|
||||||
|
+struct libiscsi_session_array { |
||||||
|
+ int cnt; |
||||||
|
+ int size; |
||||||
|
+ struct libiscsi_session_info *data; |
||||||
|
+}; |
||||||
|
+ |
||||||
|
+static void libiscsi_session_array_init(struct libiscsi_session_array *arr) |
||||||
|
+{ |
||||||
|
+ arr->cnt = 0; |
||||||
|
+ arr->size = 0; |
||||||
|
+ arr->data = NULL; |
||||||
|
+} |
||||||
|
+ |
||||||
|
+static int libiscsi_session_array_grow(struct libiscsi_session_array *arr) |
||||||
|
+{ |
||||||
|
+ if (arr->size == 0) |
||||||
|
+ arr->size = 4; |
||||||
|
+ else |
||||||
|
+ arr->size *= 2; |
||||||
|
+ |
||||||
|
+ arr->data = (struct libiscsi_session_info *) realloc( |
||||||
|
+ arr->data, |
||||||
|
+ arr->size * sizeof(struct libiscsi_session_info)); |
||||||
|
+ |
||||||
|
+ return arr->data ? 0 : 1; |
||||||
|
+} |
||||||
|
+ |
||||||
|
+static int libiscsi_session_array_grow_ondemand(struct libiscsi_session_array *arr) |
||||||
|
+{ |
||||||
|
+ if (arr->size == arr->cnt) |
||||||
|
+ return libiscsi_session_array_grow(arr); |
||||||
|
+ return 0; |
||||||
|
+} |
||||||
|
+ |
||||||
|
+static int libiscsi_session_array_resize_precize(struct libiscsi_session_array *arr) |
||||||
|
+{ |
||||||
|
+ arr->data = (struct libiscsi_session_info *) realloc( |
||||||
|
+ arr->data, |
||||||
|
+ arr->cnt * sizeof(struct libiscsi_session_info)); |
||||||
|
+ arr->size = arr->cnt; |
||||||
|
+ |
||||||
|
+ return arr->data ? 0 : 1; |
||||||
|
+} |
||||||
|
+ |
||||||
|
+static void copy_session_info_to_libiscsi_session_info( |
||||||
|
+ struct libiscsi_session_info *info, |
||||||
|
+ struct session_info *s_info) |
||||||
|
+{ |
||||||
|
+ /* Copy session info to public struct. */ |
||||||
|
+ info->sid = s_info->sid; |
||||||
|
+ /* Timeouts */ |
||||||
|
+ memcpy(&info->tmo, &s_info->tmo, sizeof(struct libiscsi_session_timeout)); |
||||||
|
+ /* CHAP authentication information */ |
||||||
|
+ memcpy(&info->chap, &s_info->chap, sizeof(struct libiscsi_chap_auth_info)); |
||||||
|
+ /* Target information */ |
||||||
|
+ strncpy(info->targetname, s_info->targetname, LIBISCSI_VALUE_MAXLEN); |
||||||
|
+ strncpy(info->address, s_info->address, NI_MAXHOST); |
||||||
|
+ strncpy(info->persistent_address, s_info->persistent_address, NI_MAXHOST); |
||||||
|
+ info->tpgt = s_info->tpgt; |
||||||
|
+ info->persistent_port = s_info->persistent_port; |
||||||
|
+} |
||||||
|
+ |
||||||
|
+static int get_sessions_helper(void *data, struct session_info *s_info) |
||||||
|
+{ |
||||||
|
+ struct libiscsi_session_array *arr = (struct libiscsi_session_array *) data; |
||||||
|
+ |
||||||
|
+ if (libiscsi_session_array_grow_ondemand(arr) != 0) |
||||||
|
+ return 1; |
||||||
|
+ |
||||||
|
+ copy_session_info_to_libiscsi_session_info(&arr->data[arr->cnt++], s_info); |
||||||
|
+ |
||||||
|
+ return 0; |
||||||
|
+} |
||||||
|
+ |
||||||
|
+int libiscsi_get_session_infos(struct libiscsi_context *context, |
||||||
|
+ struct libiscsi_session_info **infos, |
||||||
|
+ int *nr_sessions) |
||||||
|
+{ |
||||||
|
+ int rc = 0; |
||||||
|
+ int nr_found = 0; |
||||||
|
+ struct libiscsi_session_array arr; |
||||||
|
+ |
||||||
|
+ if (!context || !infos || !nr_sessions) |
||||||
|
+ return 1; |
||||||
|
+ |
||||||
|
+ libiscsi_session_array_init(&arr); |
||||||
|
+ |
||||||
|
+ rc = iscsi_sysfs_for_each_session((void *) &arr, &nr_found, |
||||||
|
+ get_sessions_helper, 0); |
||||||
|
+ if (rc != 0 || nr_found == 0) { |
||||||
|
+ strcpy(context->error_str, "No matching session"); |
||||||
|
+ return ENODEV; |
||||||
|
+ } |
||||||
|
+ |
||||||
|
+ if (libiscsi_session_array_resize_precize(&arr) != 0) { |
||||||
|
+ strcpy(context->error_str, "Can't allocate memory for session infos"); |
||||||
|
+ return ENOMEM; |
||||||
|
+ } |
||||||
|
+ |
||||||
|
+ *infos = arr.data; |
||||||
|
+ *nr_sessions = nr_found; |
||||||
|
+ |
||||||
|
+ return 0; |
||||||
|
+} |
||||||
|
+ |
||||||
|
+int libiscsi_get_session_info_by_id(struct libiscsi_context *context, |
||||||
|
+ struct libiscsi_session_info *info, |
||||||
|
+ const char *session) |
||||||
|
+{ |
||||||
|
+ struct session_info s_info; |
||||||
|
+ |
||||||
|
+ if (!context || !info || !session) |
||||||
|
+ return 1; |
||||||
|
+ |
||||||
|
+ if (iscsi_sysfs_get_sessioninfo_by_id(&s_info, (char*) session) != 0) { |
||||||
|
+ strcpy(context->error_str, "No matching session"); |
||||||
|
+ return ENODEV; |
||||||
|
+ } |
||||||
|
+ |
||||||
|
+ copy_session_info_to_libiscsi_session_info(info, &s_info); |
||||||
|
+ |
||||||
|
+ return 0; |
||||||
|
+} |
||||||
|
+ |
||||||
|
int libiscsi_node_set_parameter(struct libiscsi_context *context, |
||||||
|
const struct libiscsi_node *node, |
||||||
|
const char *parameter, const char *value) |
||||||
|
diff --git a/libiscsi/libiscsi.h b/libiscsi/libiscsi.h |
||||||
|
index 756590e..a9891f4 100644 |
||||||
|
--- a/libiscsi/libiscsi.h |
||||||
|
+++ b/libiscsi/libiscsi.h |
||||||
|
@@ -3,6 +3,7 @@ |
||||||
|
* |
||||||
|
* Copyright (C) 2008-2009 Red Hat, Inc. All rights reserved. |
||||||
|
* Copyright (C) 2008-2009 Hans de Goede <hdegoede@redhat.com> |
||||||
|
+ * Copyright (C) 2015 Peter Hatina <phatina@redhat.com> |
||||||
|
* maintained by open-iscsi@googlegroups.com |
||||||
|
* |
||||||
|
* This program is free software; you can redistribute it and/or modify |
||||||
|
@@ -56,6 +57,17 @@ enum libiscsi_auth_t { |
||||||
|
*/ |
||||||
|
struct libiscsi_context; |
||||||
|
|
||||||
|
+/** \brief iSCSI session timeouts |
||||||
|
+ * |
||||||
|
+ * Struct holding session timeouts. |
||||||
|
+ */ |
||||||
|
+struct libiscsi_session_timeout { |
||||||
|
+ int abort_tmo; |
||||||
|
+ int lu_reset_tmo; |
||||||
|
+ int recovery_tmo; |
||||||
|
+ int tgt_reset_tmo; |
||||||
|
+}; |
||||||
|
+ |
||||||
|
/** \brief iSCSI node record |
||||||
|
* |
||||||
|
* Struct holding data uniquely identifying an iSCSI node. |
||||||
|
@@ -84,6 +96,24 @@ struct libiscsi_chap_auth_info { |
||||||
|
char reverse_password[LIBISCSI_VALUE_MAXLEN] /** Reverse Password */; |
||||||
|
}; |
||||||
|
|
||||||
|
+/** \brief iSCSI session |
||||||
|
+ * |
||||||
|
+ * Struct hoding iSCSI session information. |
||||||
|
+ */ |
||||||
|
+struct libiscsi_session_info { |
||||||
|
+ int sid; |
||||||
|
+ |
||||||
|
+ struct libiscsi_session_timeout tmo; |
||||||
|
+ struct libiscsi_chap_auth_info chap; |
||||||
|
+ |
||||||
|
+ char targetname[LIBISCSI_VALUE_MAXLEN]; |
||||||
|
+ int tpgt; |
||||||
|
+ char address[NI_MAXHOST]; |
||||||
|
+ int port; |
||||||
|
+ char persistent_address[NI_MAXHOST]; |
||||||
|
+ int persistent_port; |
||||||
|
+}; |
||||||
|
+ |
||||||
|
/** \brief generic libiscsi authentication information struct |
||||||
|
* |
||||||
|
* Struct holding authentication information for discovery and login. |
||||||
|
@@ -248,6 +278,32 @@ PUBLIC int libiscsi_node_login(struct libiscsi_context *context, |
||||||
|
PUBLIC int libiscsi_node_logout(struct libiscsi_context *context, |
||||||
|
const struct libiscsi_node *node); |
||||||
|
|
||||||
|
+/** \brief Get an array of iSCSI sessions. |
||||||
|
+ * |
||||||
|
+ * Get the array containing iSCSI sessions' information. |
||||||
|
+ * |
||||||
|
+ * \param context libiscsi context to operate on. |
||||||
|
+ * \param infos Array of iSCSI sessions' information. |
||||||
|
+ * Release with free(). |
||||||
|
+ * \param nr_sessions The number of elements in \e infos. |
||||||
|
+ * \return 0 on success, otherwise a standard error code |
||||||
|
+ * (from errno.h). |
||||||
|
+ */ |
||||||
|
+PUBLIC int libiscsi_get_session_infos(struct libiscsi_context *context, |
||||||
|
+ struct libiscsi_session_info **infos, int *nr_sessions); |
||||||
|
+ |
||||||
|
+/** \brief Get session information by session ID. |
||||||
|
+ * |
||||||
|
+ * \param context libiscsi context to operate on. |
||||||
|
+ * \param info iSCSI session information. |
||||||
|
+ * \param session Session name. |
||||||
|
+ * \return 0 on success, otherwise a standard error code |
||||||
|
+ * (from errno.h) |
||||||
|
+ */ |
||||||
|
+PUBLIC int libiscsi_get_session_info_by_id(struct libiscsi_context *context, |
||||||
|
+ struct libiscsi_session_info *info, |
||||||
|
+ const char *session); |
||||||
|
+ |
||||||
|
/** \brief Set an iSCSI parameter for the given node |
||||||
|
* |
||||||
|
* Set the given nodes iSCSI parameter named by \e parameter to value \e value. |
||||||
|
diff --git a/usr/iscsi_sysfs.c b/usr/iscsi_sysfs.c |
||||||
|
index 435c576..e549afe 100644 |
||||||
|
--- a/usr/iscsi_sysfs.c |
||||||
|
+++ b/usr/iscsi_sysfs.c |
||||||
|
@@ -3,6 +3,7 @@ |
||||||
|
* |
||||||
|
* Copyright (C) 2006 Mike Christie |
||||||
|
* Copyright (C) 2006 Red Hat, Inc. All rights reserved. |
||||||
|
+ * Copyright (C) 2015 Peter Hatina <phatina@redhat.com> |
||||||
|
* |
||||||
|
* This program is free software; you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published |
||||||
|
@@ -1151,6 +1152,11 @@ free_info: |
||||||
|
return rc; |
||||||
|
} |
||||||
|
|
||||||
|
+const char *iscsi_sysfs_get_session_path(void) |
||||||
|
+{ |
||||||
|
+ return ISCSI_SESSION_DIR; |
||||||
|
+} |
||||||
|
+ |
||||||
|
int iscsi_sysfs_for_each_iface_on_host(void *data, uint32_t host_no, |
||||||
|
int *nr_found, |
||||||
|
iscsi_sysfs_iface_op_fn *fn) |
||||||
|
diff --git a/usr/iscsi_sysfs.h b/usr/iscsi_sysfs.h |
||||||
|
index 1d0377f..909db34 100644 |
||||||
|
--- a/usr/iscsi_sysfs.h |
||||||
|
+++ b/usr/iscsi_sysfs.h |
||||||
|
@@ -3,6 +3,7 @@ |
||||||
|
* |
||||||
|
* Copyright (C) 2006 Mike Christie |
||||||
|
* Copyright (C) 2006 Red Hat, Inc. All rights reserved. |
||||||
|
+ * Copyright (C) 2015 Peter Hatina <phatina@redhat.com> |
||||||
|
* |
||||||
|
* This program is free software; you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as published |
||||||
|
@@ -47,6 +48,7 @@ typedef int (iscsi_sysfs_flashnode_op_fn)(void *, struct flashnode_rec *, |
||||||
|
uint32_t, uint32_t); |
||||||
|
typedef int (iscsi_sysfs_iface_op_fn)(void *, struct iface_rec *); |
||||||
|
|
||||||
|
+extern const char *iscsi_sysfs_get_session_path(void); |
||||||
|
extern int iscsi_sysfs_for_each_iface_on_host(void *data, uint32_t host_no, |
||||||
|
int *nr_found, |
||||||
|
iscsi_sysfs_iface_op_fn *fn); |
||||||
|
-- |
||||||
|
2.26.2 |
||||||
|
|
@ -0,0 +1,32 @@ |
|||||||
|
From c53c576c09c5a3a1654b7a1f08fcc222a102499d Mon Sep 17 00:00:00 2001 |
||||||
|
From: rpm-build <rpm-build> |
||||||
|
Date: Tue, 28 Feb 2017 09:00:41 -0800 |
||||||
|
Subject: [PATCH] libiscsi: fix discovery request timeout regression |
||||||
|
|
||||||
|
--- |
||||||
|
libiscsi/libiscsi.c | 2 ++ |
||||||
|
1 file changed, 2 insertions(+) |
||||||
|
|
||||||
|
diff --git a/libiscsi/libiscsi.c b/libiscsi/libiscsi.c |
||||||
|
index 755c18c..bb17dfc 100644 |
||||||
|
--- a/libiscsi/libiscsi.c |
||||||
|
+++ b/libiscsi/libiscsi.c |
||||||
|
@@ -136,6 +136,7 @@ int libiscsi_discover_sendtargets(struct libiscsi_context *context, |
||||||
|
|
||||||
|
/* Fill the drec struct with all needed info */ |
||||||
|
memset(&drec, 0, sizeof drec); |
||||||
|
+ drec.iscsid_req_tmo = -1; |
||||||
|
idbm_sendtargets_defaults(&drec.u.sendtargets); |
||||||
|
drec.type = DISCOVERY_TYPE_SENDTARGETS; |
||||||
|
strlcpy(drec.address, address, sizeof(drec.address)); |
||||||
|
@@ -228,6 +229,7 @@ int libiscsi_discover_firmware(struct libiscsi_context *context, |
||||||
|
CHECK(iface_create_ifaces_from_boot_contexts(&ifaces, &targets)); |
||||||
|
|
||||||
|
memset(&drec, 0, sizeof(drec)); |
||||||
|
+ drec.iscsid_req_tmo = -1; |
||||||
|
drec.type = DISCOVERY_TYPE_FW; |
||||||
|
rc = idbm_bind_ifaces_to_nodes(discovery_fw, &drec, &ifaces, &rec_list); |
||||||
|
if (rc) { |
||||||
|
-- |
||||||
|
2.26.2 |
||||||
|
|
@ -0,0 +1,35 @@ |
|||||||
|
From cf4db608004f7c1f137ed556e3ba6b6f4d65da96 Mon Sep 17 00:00:00 2001 |
||||||
|
From: rpm-build <rpm-build> |
||||||
|
Date: Tue, 28 Feb 2017 10:06:42 -0800 |
||||||
|
Subject: [PATCH] libiscsi format-security build errors |
||||||
|
|
||||||
|
--- |
||||||
|
libiscsi/libiscsi.c | 5 +++-- |
||||||
|
1 file changed, 3 insertions(+), 2 deletions(-) |
||||||
|
|
||||||
|
diff --git a/libiscsi/libiscsi.c b/libiscsi/libiscsi.c |
||||||
|
index bb17dfc..7003388 100644 |
||||||
|
--- a/libiscsi/libiscsi.c |
||||||
|
+++ b/libiscsi/libiscsi.c |
||||||
|
@@ -177,7 +177,8 @@ int libiscsi_discover_sendtargets(struct libiscsi_context *context, |
||||||
|
*found_nodes = calloc(found, sizeof **found_nodes); |
||||||
|
if (*found_nodes == NULL) { |
||||||
|
snprintf(context->error_str, |
||||||
|
- sizeof(context->error_str), strerror(ENOMEM)); |
||||||
|
+ sizeof(context->error_str), |
||||||
|
+ "%s", strerror(ENOMEM)); |
||||||
|
rc = ENOMEM; |
||||||
|
goto leave; |
||||||
|
} |
||||||
|
@@ -634,7 +635,7 @@ static int get_parameter_helper(void *data, node_rec_t *rec) |
||||||
|
info = idbm_recinfo_alloc(MAX_KEYS); |
||||||
|
if (!info) { |
||||||
|
snprintf(context->error_str, sizeof(context->error_str), |
||||||
|
- strerror(ENOMEM)); |
||||||
|
+ "%s", strerror(ENOMEM)); |
||||||
|
return ENOMEM; |
||||||
|
} |
||||||
|
|
||||||
|
-- |
||||||
|
2.26.2 |
||||||
|
|
@ -0,0 +1,36 @@ |
|||||||
|
From a86a677762cf5fd45a43029a4fd3dd83d1a87a98 Mon Sep 17 00:00:00 2001 |
||||||
|
From: rpm-build <rpm-build> |
||||||
|
Date: Thu, 24 May 2018 15:17:05 -0700 |
||||||
|
Subject: [PATCH] libiscsi fix build to use libopeniscsiusr |
||||||
|
|
||||||
|
--- |
||||||
|
libiscsi/Makefile | 6 ++++-- |
||||||
|
1 file changed, 4 insertions(+), 2 deletions(-) |
||||||
|
|
||||||
|
diff --git a/libiscsi/Makefile b/libiscsi/Makefile |
||||||
|
index 53f9746..f2cf248 100644 |
||||||
|
--- a/libiscsi/Makefile |
||||||
|
+++ b/libiscsi/Makefile |
||||||
|
@@ -8,7 +8,9 @@ OSNAME=$(shell uname -s) |
||||||
|
OPTFLAGS ?= -O2 -g |
||||||
|
WARNFLAGS ?= -Wall -Wstrict-prototypes |
||||||
|
CFLAGS = $(OPTFLAGS) $(WARNFLAGS) -I../include -I../usr \ |
||||||
|
- -D$(OSNAME) -fPIC -D_GNU_SOURCE -fvisibility=hidden |
||||||
|
+ -D$(OSNAME) -fPIC -D_GNU_SOURCE -fvisibility=hidden \ |
||||||
|
+ -I../libopeniscsiusr |
||||||
|
+LDFLAGS = -L../libopeniscsiusr -lopeniscsiusr |
||||||
|
LIB = libiscsi.so.0 |
||||||
|
TESTS = tests/test_discovery_sendtargets tests/test_discovery_firmware |
||||||
|
TESTS += tests/test_login tests/test_logout tests/test_params |
||||||
|
@@ -23,7 +25,7 @@ FW_PARAM_SRCS = fw_entry.o prom_lex.o prom_parse.tab.o fwparam_ppc.o fwparam_sys |
||||||
|
# sources shared with the userspace utils, note we build these separately |
||||||
|
# to get PIC versions. |
||||||
|
COMMON_OBJS = $(patsubst %.o, common-objs/%.o, $(COMMON_SRCS)) |
||||||
|
-USR_OBJS = $(patsubst %.o, usr-objs/%.o, $(ISCSI_LIB_SRCS) strings.o) |
||||||
|
+USR_OBJS = $(patsubst %.o, usr-objs/%.o, $(ISCSI_LIB_SRCS) local_strings.o) |
||||||
|
FW_OBJS = $(patsubst %.o, fw-objs/%.o, $(FW_PARAM_SRCS)) |
||||||
|
|
||||||
|
# Flags for the tests |
||||||
|
-- |
||||||
|
2.26.2 |
||||||
|
|
@ -0,0 +1,66 @@ |
|||||||
|
From 55af753f593243bcd1ab4c7e82620bdee432915b Mon Sep 17 00:00:00 2001 |
||||||
|
From: Chris Leech <cleech@redhat.com> |
||||||
|
Date: Thu, 7 Nov 2019 09:16:17 -0800 |
||||||
|
Subject: [PATCH] libiscsi: fix build against latest upstream, again |
||||||
|
|
||||||
|
--- |
||||||
|
libiscsi/Makefile | 4 ++-- |
||||||
|
libiscsi/libiscsi.c | 6 +++--- |
||||||
|
2 files changed, 5 insertions(+), 5 deletions(-) |
||||||
|
|
||||||
|
diff --git a/libiscsi/Makefile b/libiscsi/Makefile |
||||||
|
index f2cf248..462d666 100644 |
||||||
|
--- a/libiscsi/Makefile |
||||||
|
+++ b/libiscsi/Makefile |
||||||
|
@@ -10,7 +10,7 @@ WARNFLAGS ?= -Wall -Wstrict-prototypes |
||||||
|
CFLAGS = $(OPTFLAGS) $(WARNFLAGS) -I../include -I../usr \ |
||||||
|
-D$(OSNAME) -fPIC -D_GNU_SOURCE -fvisibility=hidden \ |
||||||
|
-I../libopeniscsiusr |
||||||
|
-LDFLAGS = -L../libopeniscsiusr -lopeniscsiusr |
||||||
|
+LDFLAGS = -L../libopeniscsiusr -lopeniscsiusr -lkmod -lcrypto |
||||||
|
LIB = libiscsi.so.0 |
||||||
|
TESTS = tests/test_discovery_sendtargets tests/test_discovery_firmware |
||||||
|
TESTS += tests/test_login tests/test_logout tests/test_params |
||||||
|
@@ -19,7 +19,7 @@ TESTS += tests/test_set_auth tests/test_get_auth |
||||||
|
|
||||||
|
COMMON_SRCS = sysdeps.o |
||||||
|
# sources shared between iscsid, iscsiadm and iscsistart |
||||||
|
-ISCSI_LIB_SRCS = netlink.o transport.o cxgbi.o be2iscsi.o iscsi_timer.o initiator_common.o iscsi_err.o session_info.o iscsi_util.o io.o auth.o discovery.o login.o log.o md5.o sha1.o iface.o idbm.o sysfs.o iscsi_sysfs.o iscsi_net_util.o iscsid_req.o iser.o uip_mgmt_ipc.o |
||||||
|
+ISCSI_LIB_SRCS = netlink.o transport.o cxgbi.o be2iscsi.o iscsi_timer.o initiator_common.o iscsi_err.o session_info.o iscsi_util.o io.o auth.o discovery.o login.o log.o iface.o idbm.o sysfs.o iscsi_sysfs.o iscsi_net_util.o iscsid_req.o iser.o uip_mgmt_ipc.o |
||||||
|
FW_PARAM_SRCS = fw_entry.o prom_lex.o prom_parse.tab.o fwparam_ppc.o fwparam_sysfs.o |
||||||
|
|
||||||
|
# sources shared with the userspace utils, note we build these separately |
||||||
|
diff --git a/libiscsi/libiscsi.c b/libiscsi/libiscsi.c |
||||||
|
index 7003388..c598aee 100644 |
||||||
|
--- a/libiscsi/libiscsi.c |
||||||
|
+++ b/libiscsi/libiscsi.c |
||||||
|
@@ -429,7 +429,7 @@ int libiscsi_node_login(struct libiscsi_context *context, |
||||||
|
|
||||||
|
CHECK(idbm_for_each_iface(&nr_found, (void*)node->iface, login_helper, |
||||||
|
(char *)node->name, node->tpgt, |
||||||
|
- (char *)node->address, node->port)) |
||||||
|
+ (char *)node->address, node->port, false)) |
||||||
|
if (nr_found == 0) { |
||||||
|
strcpy(context->error_str, "No such node"); |
||||||
|
rc = ENODEV; |
||||||
|
@@ -615,7 +615,7 @@ int libiscsi_node_set_parameter(struct libiscsi_context *context, |
||||||
|
|
||||||
|
CHECK(idbm_for_each_iface(&nr_found, ¶ms, idbm_node_set_param, |
||||||
|
(char *)node->name, node->tpgt, |
||||||
|
- (char *)node->address, node->port)) |
||||||
|
+ (char *)node->address, node->port, false)) |
||||||
|
if (nr_found == 0) { |
||||||
|
strcpy(context->error_str, "No such node"); |
||||||
|
rc = ENODEV; |
||||||
|
@@ -677,7 +677,7 @@ int libiscsi_node_get_parameter(struct libiscsi_context *context, |
||||||
|
as most settings should be the same independent of the iface. */ |
||||||
|
CHECK(idbm_for_each_iface(&nr_found, context, get_parameter_helper, |
||||||
|
(char *)node->name, node->tpgt, |
||||||
|
- (char *)node->address, node->port)) |
||||||
|
+ (char *)node->address, node->port, false)) |
||||||
|
if (nr_found == 0) { |
||||||
|
strcpy(context->error_str, "No such node"); |
||||||
|
rc = ENODEV; |
||||||
|
-- |
||||||
|
2.26.2 |
||||||
|
|
@ -0,0 +1,45 @@ |
|||||||
|
From d410fe4b6eb2347f2160b8aaab24a639de99c23c Mon Sep 17 00:00:00 2001 |
||||||
|
From: Chris Leech <cleech@redhat.com> |
||||||
|
Date: Mon, 19 Nov 2012 17:09:24 -0800 |
||||||
|
Subject: [PATCH] remove the offload boot supported ifdef |
||||||
|
|
||||||
|
--- |
||||||
|
usr/iface.c | 7 +------ |
||||||
|
1 file changed, 1 insertion(+), 6 deletions(-) |
||||||
|
|
||||||
|
diff --git a/usr/iface.c b/usr/iface.c |
||||||
|
index 11f3d2a..65c1615 100644 |
||||||
|
--- a/usr/iface.c |
||||||
|
+++ b/usr/iface.c |
||||||
|
@@ -998,6 +998,7 @@ int iface_setup_from_boot_context(struct iface_rec *iface, |
||||||
|
{ |
||||||
|
struct iscsi_transport *t = NULL; |
||||||
|
uint32_t hostno; |
||||||
|
+ int rc; |
||||||
|
|
||||||
|
if (strlen(context->initiatorname)) |
||||||
|
strlcpy(iface->iname, context->initiatorname, |
||||||
|
@@ -1011,10 +1012,7 @@ int iface_setup_from_boot_context(struct iface_rec *iface, |
||||||
|
return 0; |
||||||
|
} |
||||||
|
} else if (strlen(context->iface)) { |
||||||
|
-/* this ifdef is only temp until distros and firmwares are updated */ |
||||||
|
-#ifdef OFFLOAD_BOOT_SUPPORTED |
||||||
|
char transport_name[ISCSI_TRANSPORT_NAME_MAXLEN]; |
||||||
|
- int rc; |
||||||
|
|
||||||
|
memset(transport_name, 0, ISCSI_TRANSPORT_NAME_MAXLEN); |
||||||
|
/* make sure offload driver is loaded */ |
||||||
|
@@ -1040,9 +1038,6 @@ int iface_setup_from_boot_context(struct iface_rec *iface, |
||||||
|
} |
||||||
|
|
||||||
|
strlcpy(iface->netdev, context->iface, sizeof(iface->netdev)); |
||||||
|
-#else |
||||||
|
- return 0; |
||||||
|
-#endif |
||||||
|
} else |
||||||
|
return 0; |
||||||
|
|
||||||
|
-- |
||||||
|
2.26.2 |
||||||
|
|
@ -0,0 +1,34 @@ |
|||||||
|
From 49dc2a687175f9671a159df38971a15287dae18c Mon Sep 17 00:00:00 2001 |
||||||
|
From: Chris Leech <cleech@redhat.com> |
||||||
|
Date: Mon, 24 Feb 2014 09:33:33 -0800 |
||||||
|
Subject: [PATCH] Revert "iscsiadm: return error when login fails" |
||||||
|
|
||||||
|
This reverts commit fc2a8e9a2911bc76f961fe3e4a159fab9b8b9691. |
||||||
|
|
||||||
|
Done to address RHBZ #1015563 |
||||||
|
--- |
||||||
|
usr/session_mgmt.c | 4 ++-- |
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-) |
||||||
|
|
||||||
|
diff --git a/usr/session_mgmt.c b/usr/session_mgmt.c |
||||||
|
index 0500f15..1e1f2bc 100644 |
||||||
|
--- a/usr/session_mgmt.c |
||||||
|
+++ b/usr/session_mgmt.c |
||||||
|
@@ -178,12 +178,12 @@ int iscsi_login_portal(void *data, struct list_head *list, struct node_rec *rec) |
||||||
|
goto done; |
||||||
|
} |
||||||
|
if (session_count >= rec->session.nr_sessions) { |
||||||
|
- log_warning("%s: %d session%s requested, but %d " |
||||||
|
+ log_debug(1, "%s: %d session%s requested, but %d " |
||||||
|
"already present.", |
||||||
|
rec->iface.name, rec->session.nr_sessions, |
||||||
|
rec->session.nr_sessions == 1 ? "" : "s", |
||||||
|
session_count); |
||||||
|
- rc = ISCSI_ERR_SESS_EXISTS; |
||||||
|
+ rc = 0; |
||||||
|
goto done; |
||||||
|
} |
||||||
|
|
||||||
|
-- |
||||||
|
2.26.2 |
||||||
|
|
@ -0,0 +1,25 @@ |
|||||||
|
From e35261316aaa598c4146a5396745cb76571e94fe Mon Sep 17 00:00:00 2001 |
||||||
|
From: rpm-build <rpm-build> |
||||||
|
Date: Fri, 25 May 2018 09:39:07 -0700 |
||||||
|
Subject: [PATCH] dont install scripts |
||||||
|
|
||||||
|
--- |
||||||
|
Makefile | 2 +- |
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-) |
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile |
||||||
|
index 4ab091f..7e6b734 100644 |
||||||
|
--- a/Makefile |
||||||
|
+++ b/Makefile |
||||||
|
@@ -116,7 +116,7 @@ install_systemd: |
||||||
|
$(INSTALL) -d $(DESTDIR)$(systemddir) |
||||||
|
$(INSTALL) -m 644 $(SYSTEMDFILES) $(DESTDIR)/$(systemddir) |
||||||
|
|
||||||
|
-install_programs: $(PROGRAMS) $(SCRIPTS) |
||||||
|
+install_programs: $(PROGRAMS) # $(SCRIPTS) |
||||||
|
$(INSTALL) -d $(DESTDIR)$(sbindir) |
||||||
|
$(INSTALL) -m 755 $^ $(DESTDIR)$(sbindir) |
||||||
|
|
||||||
|
-- |
||||||
|
2.26.2 |
||||||
|
|
@ -0,0 +1,109 @@ |
|||||||
|
From e186e959ddc2a47e7cfe1f5a8ea4d3fa8248a478 Mon Sep 17 00:00:00 2001 |
||||||
|
From: rpm-build <rpm-build> |
||||||
|
Date: Wed, 30 May 2018 16:08:30 -0700 |
||||||
|
Subject: [PATCH] use /var/lib/iscsi in libopeniscsiusr |
||||||
|
|
||||||
|
--- |
||||||
|
libopeniscsiusr/idbm.h | 3 ++- |
||||||
|
libopeniscsiusr/iface.c | 2 +- |
||||||
|
libopeniscsiusr/libopeniscsiusr/libopeniscsiusr.h | 8 ++++---- |
||||||
|
libopeniscsiusr/libopeniscsiusr/libopeniscsiusr_iface.h | 2 +- |
||||||
|
libopeniscsiusr/node.h | 2 +- |
||||||
|
5 files changed, 9 insertions(+), 8 deletions(-) |
||||||
|
|
||||||
|
diff --git a/libopeniscsiusr/idbm.h b/libopeniscsiusr/idbm.h |
||||||
|
index cc90388..5a4d2fa 100644 |
||||||
|
--- a/libopeniscsiusr/idbm.h |
||||||
|
+++ b/libopeniscsiusr/idbm.h |
||||||
|
@@ -31,7 +31,8 @@ |
||||||
|
#include "libopeniscsiusr/libopeniscsiusr_common.h" |
||||||
|
|
||||||
|
#define ISCSI_CONFIG_ROOT "/etc/iscsi/" |
||||||
|
-#define IFACE_CONFIG_DIR ISCSI_CONFIG_ROOT"ifaces" |
||||||
|
+#define ISCSI_VAR_LIB "/var/lib/iscsi/" |
||||||
|
+#define IFACE_CONFIG_DIR ISCSI_VAR_LIB"ifaces" |
||||||
|
#define AUTH_STR_MAX_LEN 256 |
||||||
|
#define BOOT_NAME_MAXLEN 256 |
||||||
|
#define IDBM_DUMP_SIZE 8192 |
||||||
|
diff --git a/libopeniscsiusr/iface.c b/libopeniscsiusr/iface.c |
||||||
|
index e7938a5..99ab7b5 100644 |
||||||
|
--- a/libopeniscsiusr/iface.c |
||||||
|
+++ b/libopeniscsiusr/iface.c |
||||||
|
@@ -381,7 +381,7 @@ int iscsi_default_iface_setup(struct iscsi_context *ctx) |
||||||
|
|
||||||
|
_good(_iscsi_hids_get(ctx, &hids, &hid_count), rc, out); |
||||||
|
for (i = 0; i < hid_count; ++i) { |
||||||
|
- /* Create /etc/iscsi/ifaces/<iface_name> file if not found |
||||||
|
+ /* Create /var/lib/iscsi/ifaces/<iface_name> file if not found |
||||||
|
*/ |
||||||
|
_good(_iscsi_ifaces_get_from_sysfs(ctx, hids[i], &ifaces, &iface_count), |
||||||
|
rc, out); |
||||||
|
diff --git a/libopeniscsiusr/libopeniscsiusr/libopeniscsiusr.h b/libopeniscsiusr/libopeniscsiusr/libopeniscsiusr.h |
||||||
|
index 4395902..81582da 100644 |
||||||
|
--- a/libopeniscsiusr/libopeniscsiusr/libopeniscsiusr.h |
||||||
|
+++ b/libopeniscsiusr/libopeniscsiusr/libopeniscsiusr.h |
||||||
|
@@ -339,7 +339,7 @@ __DLL_EXPORT void iscsi_session_free(struct iscsi_session *se); |
||||||
|
* * bnx2i |
||||||
|
* |
||||||
|
* It will also create configuration files for iSCSI hardware offload cards in |
||||||
|
- * /etc/iscsi/ifaces/<iface_name>. |
||||||
|
+ * /var/lib/iscsi/ifaces/<iface_name>. |
||||||
|
* |
||||||
|
* @ctx: |
||||||
|
* Pointer of 'struct iscsi_context'. |
||||||
|
@@ -369,7 +369,7 @@ __DLL_EXPORT int iscsi_default_iface_setup(struct iscsi_context *ctx); |
||||||
|
* Retrieves all iSCSI interfaces. For the properties of 'struct iscsi_iface', |
||||||
|
* please refer to the functions defined in 'libopeniscsiusr_iface.h' file. |
||||||
|
* The returned results contains default iSCSI interfaces(iser and iscsi_tcp) |
||||||
|
- * and iSCSI interfaces configured in "/etc/iscsi/ifaces/". |
||||||
|
+ * and iSCSI interfaces configured in "/var/lib/iscsi/ifaces/". |
||||||
|
* Illegal configuration file will be skipped and warned. |
||||||
|
* To generate iSCSI interface configuration when new card installed, please |
||||||
|
* use iscsi_default_iface_setup(). |
||||||
|
@@ -427,7 +427,7 @@ __DLL_EXPORT void iscsi_ifaces_free(struct iscsi_iface **ifaces, |
||||||
|
* iscsi_iface_get() - Retrieve specified iSCSI interface. |
||||||
|
* |
||||||
|
* Retrieves specified iSCSI interfaces by reading configuration from |
||||||
|
- * "/etc/iscsi/iface/<iface_name>". |
||||||
|
+ * "/var/lib/iscsi/iface/<iface_name>". |
||||||
|
* To generate iSCSI interface configuration when new card installed, please |
||||||
|
* use iscsi_default_iface_setup(). |
||||||
|
* Illegal configuration file will be treated as error LIBISCSI_ERR_IDBM. |
||||||
|
@@ -438,7 +438,7 @@ __DLL_EXPORT void iscsi_ifaces_free(struct iscsi_iface **ifaces, |
||||||
|
* If this pointer is NULL, your program will be terminated by assert. |
||||||
|
* @iface_name: |
||||||
|
* String. Name of iSCSI interface. Also the file name of configuration |
||||||
|
- * file "/etc/iscsi/iface/<iface_name>". |
||||||
|
+ * file "/var/lib/iscsi/iface/<iface_name>". |
||||||
|
* If this pointer is NULL or empty string, your program will be terminated |
||||||
|
* by assert. |
||||||
|
* @iface: |
||||||
|
diff --git a/libopeniscsiusr/libopeniscsiusr/libopeniscsiusr_iface.h b/libopeniscsiusr/libopeniscsiusr/libopeniscsiusr_iface.h |
||||||
|
index a1a2552..95b0160 100644 |
||||||
|
--- a/libopeniscsiusr/libopeniscsiusr/libopeniscsiusr_iface.h |
||||||
|
+++ b/libopeniscsiusr/libopeniscsiusr/libopeniscsiusr_iface.h |
||||||
|
@@ -182,7 +182,7 @@ __DLL_EXPORT const char *iscsi_iface_name_get(struct iscsi_iface *iface); |
||||||
|
* |
||||||
|
* Dump all configurations of specified iSCSI interface. Will skip empty |
||||||
|
* configuration so that output string could be saved directly to |
||||||
|
- * /etc/iscsi/ifaces/<iface_name> file. |
||||||
|
+ * /var/lib/iscsi/ifaces/<iface_name> file. |
||||||
|
* |
||||||
|
* @iface: |
||||||
|
* Pointer of 'struct iscsi_iface'. |
||||||
|
diff --git a/libopeniscsiusr/node.h b/libopeniscsiusr/node.h |
||||||
|
index 39e07b3..9eba7fa 100644 |
||||||
|
--- a/libopeniscsiusr/node.h |
||||||
|
+++ b/libopeniscsiusr/node.h |
||||||
|
@@ -44,7 +44,7 @@ struct iscsi_node { |
||||||
|
char portal[NI_MAXHOST * 2]; |
||||||
|
}; |
||||||
|
|
||||||
|
-#define NODE_CONFIG_DIR ISCSI_CONFIG_ROOT"nodes" |
||||||
|
+#define NODE_CONFIG_DIR ISCSI_VAR_LIB"nodes" |
||||||
|
|
||||||
|
/* Might be public in the future */ |
||||||
|
__DLL_LOCAL void iscsi_node_free(struct iscsi_node *node); |
||||||
|
-- |
||||||
|
2.26.2 |
||||||
|
|
@ -0,0 +1,100 @@ |
|||||||
|
From 6de09f82e86db0500a59017a473c944877a80516 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Chris Leech <cleech@redhat.com> |
||||||
|
Date: Wed, 5 Jun 2019 09:08:39 -0700 |
||||||
|
Subject: [PATCH 1/1] Coverity scan fixes |
||||||
|
|
||||||
|
--- |
||||||
|
iscsiuio/src/unix/libs/qedi.c | 2 +- |
||||||
|
iscsiuio/src/unix/main.c | 3 +++ |
||||||
|
libopeniscsiusr/idbm.c | 11 +++++------ |
||||||
|
usr/idbm.c | 10 ++++------ |
||||||
|
usr/iscsid.c | 2 +- |
||||||
|
5 files changed, 14 insertions(+), 14 deletions(-) |
||||||
|
|
||||||
|
diff --git a/iscsiuio/src/unix/libs/qedi.c b/iscsiuio/src/unix/libs/qedi.c |
||||||
|
index 1af8d1b..9a814c6 100644 |
||||||
|
--- a/iscsiuio/src/unix/libs/qedi.c |
||||||
|
+++ b/iscsiuio/src/unix/libs/qedi.c |
||||||
|
@@ -1030,7 +1030,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 0c9ad49..f83f305 100644 |
||||||
|
--- a/iscsiuio/src/unix/main.c |
||||||
|
+++ b/iscsiuio/src/unix/main.c |
||||||
|
@@ -391,6 +391,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); |
||||||
|
diff --git a/libopeniscsiusr/idbm.c b/libopeniscsiusr/idbm.c |
||||||
|
index 0910c63..6213e62 100644 |
||||||
|
--- a/libopeniscsiusr/idbm.c |
||||||
|
+++ b/libopeniscsiusr/idbm.c |
||||||
|
@@ -321,12 +321,11 @@ int _idbm_lock(struct iscsi_context *ctx) |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
- if (access(LOCK_DIR, F_OK) != 0) { |
||||||
|
- if (mkdir(LOCK_DIR, 0770) != 0) { |
||||||
|
- _error(ctx, "Could not open %s: %d %s", LOCK_DIR, errno, |
||||||
|
- _strerror(errno, strerr_buff)); |
||||||
|
- return LIBISCSI_ERR_IDBM; |
||||||
|
- } |
||||||
|
+ if (((mkdir(LOCK_DIR, 0770) != 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 b33ae42..1ac0b73 100644 |
||||||
|
--- a/usr/idbm.c |
||||||
|
+++ b/usr/idbm.c |
||||||
|
@@ -1461,12 +1461,10 @@ int idbm_lock(void) |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
- if (access(LOCK_DIR, F_OK) != 0) { |
||||||
|
- if (mkdir(LOCK_DIR, 0770) != 0) { |
||||||
|
- log_error("Could not open %s: %s", LOCK_DIR, |
||||||
|
- strerror(errno)); |
||||||
|
- return ISCSI_ERR_IDBM; |
||||||
|
- } |
||||||
|
+ if (((mkdir(LOCK_DIR, 0770) != 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 dc54fec..fde8894 100644 |
||||||
|
--- a/usr/iscsid.c |
||||||
|
+++ b/usr/iscsid.c |
||||||
|
@@ -510,8 +510,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.26.3 |
||||||
|
|
@ -0,0 +1,25 @@ |
|||||||
|
From b50ab4a08a12593985b14aece5f689e485647b1c Mon Sep 17 00:00:00 2001 |
||||||
|
From: rpm-build <rpm-build> |
||||||
|
Date: Wed, 16 Oct 2019 23:17:20 -0700 |
||||||
|
Subject: [PATCH 1/1] fix upstream build breakage of iscsiuio LDFLAGS |
||||||
|
|
||||||
|
--- |
||||||
|
iscsiuio/configure.ac | 2 +- |
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-) |
||||||
|
|
||||||
|
diff --git a/iscsiuio/configure.ac b/iscsiuio/configure.ac |
||||||
|
index 9b85448..5dc188b 100644 |
||||||
|
--- a/iscsiuio/configure.ac |
||||||
|
+++ b/iscsiuio/configure.ac |
||||||
|
@@ -72,7 +72,7 @@ AC_ARG_WITH([systemd], |
||||||
|
*) AC_MSG_ERROR([bad value $withval for --with-systemd]) ;; |
||||||
|
esac],[with_libsystemd=auto]) |
||||||
|
AS_IF([test "$with_libsystemd" != no],[ |
||||||
|
- PKG_CHECK_MODULES([LIBSYSTEMD],[libsystemd],[LDFLAGS=$LIBSYSTEMD_LIBS],[ |
||||||
|
+ PKG_CHECK_MODULES([LIBSYSTEMD],[libsystemd],[LDFLAGS="$LDFLAGS $LIBSYSTEMD_LIBS"],[ |
||||||
|
if test "$with_libsystemd" = yes; then |
||||||
|
AC_MSG_ERROR([could not find libsystemd using pkg-config]) |
||||||
|
else |
||||||
|
-- |
||||||
|
2.26.3 |
||||||
|
|
@ -0,0 +1,25 @@ |
|||||||
|
From 53886d75a93ee1747d84187a0498abcf6cebd210 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Chris Leech <cleech@redhat.com> |
||||||
|
Date: Mon, 21 Jan 2013 15:43:36 -0800 |
||||||
|
Subject: [PATCH 1/1] use Red Hat version string to match RPM package version |
||||||
|
|
||||||
|
--- |
||||||
|
usr/version.h | 2 +- |
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-) |
||||||
|
|
||||||
|
diff --git a/usr/version.h b/usr/version.h |
||||||
|
index 3c68989..8af23a4 100644 |
||||||
|
--- a/usr/version.h |
||||||
|
+++ b/usr/version.h |
||||||
|
@@ -6,7 +6,7 @@ |
||||||
|
* 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.1.4" |
||||||
|
+#define ISCSI_VERSION_STR "6.2.1.4" |
||||||
|
#define ISCSI_VERSION_FILE "/sys/module/scsi_transport_iscsi/version" |
||||||
|
|
||||||
|
#endif |
||||||
|
-- |
||||||
|
2.26.3 |
||||||
|
|
@ -0,0 +1,44 @@ |
|||||||
|
From 84a8601fe7b9b5337af95835aaa5aae1bfd88d95 Mon Sep 17 00:00:00 2001 |
||||||
|
From: rpm-build <rpm-build> |
||||||
|
Date: Tue, 11 Aug 2020 21:00:29 +0200 |
||||||
|
Subject: [PATCH] iscsi_if.h replace zero-length array with flexible-array |
||||||
|
member |
||||||
|
|
||||||
|
--- |
||||||
|
include/iscsi_if.h | 6 +++--- |
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-) |
||||||
|
|
||||||
|
diff --git a/include/iscsi_if.h b/include/iscsi_if.h |
||||||
|
index 5a1c614..e8cee0d 100644 |
||||||
|
--- a/include/iscsi_if.h |
||||||
|
+++ b/include/iscsi_if.h |
||||||
|
@@ -337,7 +337,7 @@ enum iscsi_param_type { |
||||||
|
struct iscsi_param_info { |
||||||
|
uint32_t len; /* Actual length of the param value */ |
||||||
|
uint16_t param; /* iscsi param */ |
||||||
|
- uint8_t value[0]; /* length sized value follows */ |
||||||
|
+ uint8_t value[]; /* length sized value follows */ |
||||||
|
} __attribute__((__packed__)); |
||||||
|
|
||||||
|
struct iscsi_iface_param_info { |
||||||
|
@@ -346,7 +346,7 @@ struct iscsi_iface_param_info { |
||||||
|
uint16_t param; /* iscsi param value */ |
||||||
|
uint8_t iface_type; /* IPv4 or IPv6 */ |
||||||
|
uint8_t param_type; /* iscsi_param_type */ |
||||||
|
- uint8_t value[0]; /* length sized value follows */ |
||||||
|
+ uint8_t value[]; /* length sized value follows */ |
||||||
|
} __attribute__((__packed__)); |
||||||
|
|
||||||
|
/* |
||||||
|
@@ -723,7 +723,7 @@ enum iscsi_flashnode_param { |
||||||
|
struct iscsi_flashnode_param_info { |
||||||
|
uint32_t len; /* Actual length of the param */ |
||||||
|
uint16_t param; /* iscsi param value */ |
||||||
|
- uint8_t value[0]; /* length sized value follows */ |
||||||
|
+ uint8_t value[]; /* length sized value follows */ |
||||||
|
} __attribute__((__packed__)); |
||||||
|
|
||||||
|
enum iscsi_discovery_parent_type { |
||||||
|
-- |
||||||
|
2.26.2 |
||||||
|
|
@ -0,0 +1,56 @@ |
|||||||
|
From af428f588f8023784c6f4b0a25d13b70fb7216ab Mon Sep 17 00:00:00 2001 |
||||||
|
From: rpm-build <rpm-build> |
||||||
|
Date: Tue, 3 Mar 2020 10:35:40 -0800 |
||||||
|
Subject: [PATCH] stop using Werror for now |
||||||
|
|
||||||
|
need to work through these warning that only appear on s390x |
||||||
|
Werror seems bad for release, makes packaging a nightmare when new |
||||||
|
compilers come around |
||||||
|
--- |
||||||
|
Makefile | 2 +- |
||||||
|
usr/Makefile | 2 +- |
||||||
|
usr/initiator.c | 2 +- |
||||||
|
3 files changed, 3 insertions(+), 3 deletions(-) |
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile |
||||||
|
index 7e6b734..0069e75 100644 |
||||||
|
--- a/Makefile |
||||||
|
+++ b/Makefile |
||||||
|
@@ -7,7 +7,7 @@ |
||||||
|
DESTDIR ?= |
||||||
|
|
||||||
|
prefix = /usr |
||||||
|
-exec_prefix = / |
||||||
|
+exec_prefix = /usr |
||||||
|
sbindir = $(exec_prefix)/sbin |
||||||
|
bindir = $(exec_prefix)/bin |
||||||
|
mandir = $(prefix)/share/man |
||||||
|
diff --git a/usr/Makefile b/usr/Makefile |
||||||
|
index 885243a..1a743d1 100644 |
||||||
|
--- a/usr/Makefile |
||||||
|
+++ b/usr/Makefile |
||||||
|
@@ -35,7 +35,7 @@ endif |
||||||
|
PKG_CONFIG = /usr/bin/pkg-config |
||||||
|
|
||||||
|
CFLAGS ?= -O2 -g |
||||||
|
-WARNFLAGS ?= -Wall -Wextra -Werror -Wstrict-prototypes -fno-common |
||||||
|
+WARNFLAGS ?= -Wall -Wextra -Wstrict-prototypes -fno-common |
||||||
|
CFLAGS += $(WARNFLAGS) -I../include -I. -D_GNU_SOURCE \ |
||||||
|
-I$(TOPDIR)/libopeniscsiusr -DISNS_ENABLE |
||||||
|
CFLAGS += $(shell $(PKG_CONFIG) --cflags libkmod) |
||||||
|
diff --git a/usr/initiator.c b/usr/initiator.c |
||||||
|
index 684647c..a5a9d08 100644 |
||||||
|
--- a/usr/initiator.c |
||||||
|
+++ b/usr/initiator.c |
||||||
|
@@ -580,7 +580,7 @@ __session_conn_reopen(iscsi_conn_t *conn, queue_task_t *qtask, int do_stop, |
||||||
|
int redirected) |
||||||
|
{ |
||||||
|
iscsi_session_t *session = conn->session; |
||||||
|
- uint32_t delay; |
||||||
|
+ uint32_t delay = 0; |
||||||
|
|
||||||
|
log_debug(1, "re-opening session %d (reopen_cnt %d)", session->id, |
||||||
|
session->reopen_cnt); |
||||||
|
-- |
||||||
|
2.26.2 |
||||||
|
|
@ -0,0 +1,68 @@ |
|||||||
|
From b8c6c1f3bed0e5fcc0d02c56834fa60850a11b5f Mon Sep 17 00:00:00 2001 |
||||||
|
From: Chris Leech <cleech@redhat.com> |
||||||
|
Date: Thu, 18 Feb 2021 14:04:32 -0800 |
||||||
|
Subject: [PATCH 1/1] minor service file updates |
||||||
|
|
||||||
|
Intended use is with system presets to enable the following: |
||||||
|
iscsi.service - login of automatic node records |
||||||
|
iscsid.socket - start iscsid as needed for all iSCSI sessions |
||||||
|
iscsiuio.socket - start iscsiuio as needed for bnx2i or qedi |
||||||
|
iscsi-onboot.service - special handling of initramfs sessions |
||||||
|
|
||||||
|
The following are started automatically as needed: |
||||||
|
iscsid.service - needed for all iSCSI sessions |
||||||
|
iscsiuio.service - needed for bnx2i or qedi offload |
||||||
|
iscsi-init.service - create an iSCSI name if missing before starting iscsid |
||||||
|
iscsi-shutdown.service - ensure all non-boot sessions logout at shutdown |
||||||
|
--- |
||||||
|
etc/systemd/iscsi-init.service | 1 + |
||||||
|
etc/systemd/iscsi.service | 2 +- |
||||||
|
etc/systemd/iscsid.service | 3 +-- |
||||||
|
3 files changed, 3 insertions(+), 3 deletions(-) |
||||||
|
|
||||||
|
diff --git a/etc/systemd/iscsi-init.service b/etc/systemd/iscsi-init.service |
||||||
|
index e058ff0..c3370ec 100644 |
||||||
|
--- a/etc/systemd/iscsi-init.service |
||||||
|
+++ b/etc/systemd/iscsi-init.service |
||||||
|
@@ -1,6 +1,7 @@ |
||||||
|
[Unit] |
||||||
|
Description=One time configuration for iscsi.service |
||||||
|
ConditionPathExists=!/etc/iscsi/initiatorname.iscsi |
||||||
|
+Before=iscsid.service |
||||||
|
|
||||||
|
[Service] |
||||||
|
Type=oneshot |
||||||
|
diff --git a/etc/systemd/iscsi.service b/etc/systemd/iscsi.service |
||||||
|
index 175cb2c..6c542d2 100644 |
||||||
|
--- a/etc/systemd/iscsi.service |
||||||
|
+++ b/etc/systemd/iscsi.service |
||||||
|
@@ -4,7 +4,7 @@ Documentation=man:iscsiadm(8) man:iscsid(8) |
||||||
|
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 |
||||||
|
+Wants=remote-fs-pre.target |
||||||
|
ConditionDirectoryNotEmpty=/var/lib/iscsi/nodes |
||||||
|
|
||||||
|
[Service] |
||||||
|
diff --git a/etc/systemd/iscsid.service b/etc/systemd/iscsid.service |
||||||
|
index 324c593..df0bd83 100644 |
||||||
|
--- a/etc/systemd/iscsid.service |
||||||
|
+++ b/etc/systemd/iscsid.service |
||||||
|
@@ -4,7 +4,7 @@ Documentation=man:iscsid(8) man:iscsiuio(8) man:iscsiadm(8) |
||||||
|
DefaultDependencies=no |
||||||
|
After=network-online.target iscsiuio.service iscsi-init.service |
||||||
|
Before=remote-fs-pre.target |
||||||
|
-Requires=iscsi-init.service |
||||||
|
+Requires=iscsi-init.service iscsi-shutdown.service |
||||||
|
|
||||||
|
[Service] |
||||||
|
Type=notify |
||||||
|
@@ -15,4 +15,3 @@ Restart=on-failure |
||||||
|
|
||||||
|
[Install] |
||||||
|
WantedBy=multi-user.target |
||||||
|
-Also=iscsid.socket |
||||||
|
-- |
||||||
|
2.26.3 |
||||||
|
|
@ -0,0 +1,7 @@ |
|||||||
|
#!/bin/sh |
||||||
|
|
||||||
|
case "$2" in |
||||||
|
up|vpn-up) |
||||||
|
/bin/systemctl --no-block reload iscsi.service || : |
||||||
|
;; |
||||||
|
esac |
@ -0,0 +1,2 @@ |
|||||||
|
d /run/lock/iscsi 0700 root root - |
||||||
|
f /run/lock/iscsi/lock 0600 root root - |
@ -0,0 +1,622 @@ |
|||||||
|
%global open_iscsi_version 2.1 |
||||||
|
%global open_iscsi_build 4 |
||||||
|
%global commit0 2a8f9d81d0d6b5094c3fe9c686e2afb2ec27058a |
||||||
|
%global shortcommit0 %(c=%{commit0}; echo ${c:0:7}) |
||||||
|
|
||||||
|
# Disable python2 build by default |
||||||
|
%bcond_with python2 |
||||||
|
|
||||||
|
Summary: iSCSI daemon and utility programs |
||||||
|
Name: iscsi-initiator-utils |
||||||
|
Version: 6.%{open_iscsi_version}.%{open_iscsi_build} |
||||||
|
Release: 2.git%{shortcommit0}%{?dist} |
||||||
|
License: GPLv2+ |
||||||
|
URL: https://github.com/open-iscsi/open-iscsi |
||||||
|
Source0: https://github.com/open-iscsi/open-iscsi/archive/%{commit0}.tar.gz#/open-iscsi-%{shortcommit0}.tar.gz |
||||||
|
Source4: 04-iscsi |
||||||
|
Source5: iscsi-tmpfiles.conf |
||||||
|
|
||||||
|
Patch0001: 0001-unit-file-tweaks.patch |
||||||
|
Patch0002: 0002-idmb_rec_write-check-for-tpgt-first.patch |
||||||
|
Patch0003: 0003-idbm_rec_write-seperate-old-and-new-style-writes.patch |
||||||
|
Patch0004: 0004-idbw_rec_write-pick-tpgt-from-existing-record.patch |
||||||
|
Patch0005: 0005-update-initscripts-and-docs.patch |
||||||
|
Patch0006: 0006-use-var-for-config.patch |
||||||
|
Patch0007: 0007-use-red-hat-for-name.patch |
||||||
|
Patch0008: 0008-libiscsi.patch |
||||||
|
Patch0009: 0009-Add-macros-to-release-GIL-lock.patch |
||||||
|
Patch0010: 0010-libiscsi-introduce-sessions-API.patch |
||||||
|
Patch0011: 0011-libiscsi-fix-discovery-request-timeout-regression.patch |
||||||
|
Patch0012: 0012-libiscsi-format-security-build-errors.patch |
||||||
|
Patch0013: 0013-libiscsi-fix-build-to-use-libopeniscsiusr.patch |
||||||
|
Patch0014: 0014-libiscsi-fix-build-against-latest-upstream-again.patch |
||||||
|
Patch0015: 0015-remove-the-offload-boot-supported-ifdef.patch |
||||||
|
Patch0016: 0016-Revert-iscsiadm-return-error-when-login-fails.patch |
||||||
|
Patch0017: 0017-dont-install-scripts.patch |
||||||
|
Patch0018: 0018-use-var-lib-iscsi-in-libopeniscsiusr.patch |
||||||
|
Patch0019: 0019-Coverity-scan-fixes.patch |
||||||
|
Patch0020: 0020-fix-upstream-build-breakage-of-iscsiuio-LDFLAGS.patch |
||||||
|
Patch0021: 0021-use-Red-Hat-version-string-to-match-RPM-package-vers.patch |
||||||
|
Patch0022: 0022-iscsi_if.h-replace-zero-length-array-with-flexible-a.patch |
||||||
|
Patch0023: 0023-stop-using-Werror-for-now.patch |
||||||
|
Patch0024: 0024-minor-service-file-updates.patch |
||||||
|
Patch0025: 0001-Remove-dependences-from-iscsi-init.service.patch |
||||||
|
|
||||||
|
BuildRequires: flex bison doxygen kmod-devel systemd-units |
||||||
|
BuildRequires: autoconf automake libtool libmount-devel openssl-devel |
||||||
|
BuildRequires: isns-utils-devel |
||||||
|
BuildRequires: systemd-devel |
||||||
|
Requires: %{name}-iscsiuio >= %{version}-%{release} |
||||||
|
Requires(post): systemd |
||||||
|
Requires(preun): systemd |
||||||
|
Requires(postun): systemd |
||||||
|
|
||||||
|
# Old NetworkManager expects the dispatcher scripts in a different place |
||||||
|
Conflicts: NetworkManager < 1.20 |
||||||
|
|
||||||
|
%global _hardened_build 1 |
||||||
|
%global __provides_exclude_from ^(%{python2_sitearch}/.*\\.so|%{python3_sitearch}/.*\\.so)$ |
||||||
|
|
||||||
|
%description |
||||||
|
The iscsi package provides the server daemon for the iSCSI protocol, |
||||||
|
as well as the utility programs used to manage it. iSCSI is a protocol |
||||||
|
for distributed disk access using SCSI commands sent over Internet |
||||||
|
Protocol networks. |
||||||
|
|
||||||
|
%package iscsiuio |
||||||
|
Summary: Userspace configuration daemon required for some iSCSI hardware |
||||||
|
License: BSD |
||||||
|
Requires: %{name} = %{version}-%{release} |
||||||
|
|
||||||
|
%description iscsiuio |
||||||
|
The iscsiuio configuration daemon provides network configuration help |
||||||
|
for some iSCSI offload hardware. |
||||||
|
|
||||||
|
%package devel |
||||||
|
Summary: Development files for %{name} |
||||||
|
Requires: %{name} = %{version}-%{release} |
||||||
|
|
||||||
|
%description devel |
||||||
|
The %{name}-devel package contains libraries and header files for |
||||||
|
developing applications that use %{name}. |
||||||
|
|
||||||
|
%if %{with python2} |
||||||
|
%package -n python2-%{name} |
||||||
|
%{?python_provide:%python_provide python2-%{name}} |
||||||
|
Summary: Python %{python2_version} bindings to %{name} |
||||||
|
Requires: %{name} = %{version}-%{release} |
||||||
|
BuildRequires: python2-devel |
||||||
|
BuildRequires: python2-setuptools |
||||||
|
|
||||||
|
%description -n python2-%{name} |
||||||
|
The %{name}-python2 package contains Python %{python2_version} bindings to the |
||||||
|
libiscsi interface for interacting with %{name} |
||||||
|
%endif |
||||||
|
# ended with python2 |
||||||
|
|
||||||
|
%package -n python3-%{name} |
||||||
|
%{?python_provide:%python_provide python3-%{name}} |
||||||
|
Summary: Python %{python3_version} bindings to %{name} |
||||||
|
Requires: %{name} = %{version}-%{release} |
||||||
|
BuildRequires: python3-devel |
||||||
|
BuildRequires: python3-setuptools |
||||||
|
BuildRequires: make |
||||||
|
|
||||||
|
%description -n python3-%{name} |
||||||
|
The %{name}-python3 package contains Python %{python3_version} bindings to the |
||||||
|
libiscsi interface for interacting with %{name} |
||||||
|
|
||||||
|
%prep |
||||||
|
%autosetup -p1 -n open-iscsi-%{commit0} |
||||||
|
|
||||||
|
# change exec_prefix, there's no easy way to override |
||||||
|
%{__sed} -i -e 's|^exec_prefix = /$|exec_prefix = %{_exec_prefix}|' Makefile |
||||||
|
|
||||||
|
%build |
||||||
|
# avoid undefined references linking failures |
||||||
|
%undefine _ld_as_needed |
||||||
|
|
||||||
|
# configure sub-packages from here |
||||||
|
# letting the top level Makefile do it will lose setting from rpm |
||||||
|
cd iscsiuio |
||||||
|
autoreconf --install |
||||||
|
%{configure} |
||||||
|
cd .. |
||||||
|
|
||||||
|
%{__make} OPTFLAGS="%{optflags} %{?__global_ldflags}" |
||||||
|
pushd libiscsi |
||||||
|
%if %{with python2} |
||||||
|
%py2_build |
||||||
|
%endif |
||||||
|
# ended with python2 |
||||||
|
%py3_build |
||||||
|
touch -r libiscsi.doxy html/* |
||||||
|
popd |
||||||
|
|
||||||
|
|
||||||
|
%install |
||||||
|
%{__make} DESTDIR=%{?buildroot} install_programs install_doc install_etc install_libopeniscsiusr |
||||||
|
# upstream makefile doesn't get everything the way we like it |
||||||
|
#rm $RPM_BUILD_ROOT%%{_sbindir}/iscsi_discovery |
||||||
|
rm $RPM_BUILD_ROOT%{_mandir}/man8/iscsi_discovery.8 |
||||||
|
rm $RPM_BUILD_ROOT%{_mandir}/man8/iscsi_fw_login.8 |
||||||
|
%{__install} -pm 755 usr/iscsistart $RPM_BUILD_ROOT%{_sbindir} |
||||||
|
%{__install} -pm 644 doc/iscsistart.8 $RPM_BUILD_ROOT%{_mandir}/man8 |
||||||
|
%{__install} -pm 644 doc/iscsi-iname.8 $RPM_BUILD_ROOT%{_mandir}/man8 |
||||||
|
%{__install} -d $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d |
||||||
|
%{__install} -pm 644 iscsiuio/iscsiuiolog $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d |
||||||
|
|
||||||
|
%{__install} -d $RPM_BUILD_ROOT%{_sharedstatedir}/iscsi |
||||||
|
%{__install} -d $RPM_BUILD_ROOT%{_sharedstatedir}/iscsi/nodes |
||||||
|
%{__install} -d $RPM_BUILD_ROOT%{_sharedstatedir}/iscsi/send_targets |
||||||
|
%{__install} -d $RPM_BUILD_ROOT%{_sharedstatedir}/iscsi/static |
||||||
|
%{__install} -d $RPM_BUILD_ROOT%{_sharedstatedir}/iscsi/isns |
||||||
|
%{__install} -d $RPM_BUILD_ROOT%{_sharedstatedir}/iscsi/slp |
||||||
|
%{__install} -d $RPM_BUILD_ROOT%{_sharedstatedir}/iscsi/ifaces |
||||||
|
|
||||||
|
# for %%ghost |
||||||
|
%{__install} -d $RPM_BUILD_ROOT%{_rundir}/lock/iscsi |
||||||
|
touch $RPM_BUILD_ROOT%{_rundir}/lock/iscsi/lock |
||||||
|
|
||||||
|
|
||||||
|
%{__install} -d $RPM_BUILD_ROOT%{_unitdir} |
||||||
|
%{__install} -pm 644 etc/systemd/iscsi.service $RPM_BUILD_ROOT%{_unitdir} |
||||||
|
%{__install} -pm 644 etc/systemd/iscsi-init.service $RPM_BUILD_ROOT%{_unitdir} |
||||||
|
%{__install} -pm 644 etc/systemd/iscsi-onboot.service $RPM_BUILD_ROOT%{_unitdir} |
||||||
|
%{__install} -pm 644 etc/systemd/iscsi-shutdown.service $RPM_BUILD_ROOT%{_unitdir} |
||||||
|
%{__install} -pm 644 etc/systemd/iscsid.service $RPM_BUILD_ROOT%{_unitdir} |
||||||
|
%{__install} -pm 644 etc/systemd/iscsid.socket $RPM_BUILD_ROOT%{_unitdir} |
||||||
|
%{__install} -pm 644 etc/systemd/iscsiuio.service $RPM_BUILD_ROOT%{_unitdir} |
||||||
|
%{__install} -pm 644 etc/systemd/iscsiuio.socket $RPM_BUILD_ROOT%{_unitdir} |
||||||
|
|
||||||
|
%{__install} -d $RPM_BUILD_ROOT%{_libexecdir} |
||||||
|
%{__install} -pm 755 etc/systemd/iscsi-mark-root-nodes $RPM_BUILD_ROOT%{_libexecdir} |
||||||
|
|
||||||
|
%{__install} -d $RPM_BUILD_ROOT%{_prefix}/lib/NetworkManager/dispatcher.d |
||||||
|
%{__install} -pm 755 %{SOURCE4} $RPM_BUILD_ROOT%{_prefix}/lib/NetworkManager/dispatcher.d |
||||||
|
|
||||||
|
%{__install} -d $RPM_BUILD_ROOT%{_tmpfilesdir} |
||||||
|
%{__install} -pm 644 %{SOURCE5} $RPM_BUILD_ROOT%{_tmpfilesdir}/iscsi.conf |
||||||
|
|
||||||
|
%{__install} -d $RPM_BUILD_ROOT%{_libdir} |
||||||
|
%{__install} -pm 755 libiscsi/libiscsi.so.0 $RPM_BUILD_ROOT%{_libdir} |
||||||
|
%{__ln_s} libiscsi.so.0 $RPM_BUILD_ROOT%{_libdir}/libiscsi.so |
||||||
|
%{__install} -d $RPM_BUILD_ROOT%{_includedir} |
||||||
|
%{__install} -pm 644 libiscsi/libiscsi.h $RPM_BUILD_ROOT%{_includedir} |
||||||
|
|
||||||
|
%if %{with python2} |
||||||
|
%{__install} -d $RPM_BUILD_ROOT%{python2_sitearch} |
||||||
|
%endif |
||||||
|
# ended with python2 |
||||||
|
%{__install} -d $RPM_BUILD_ROOT%{python3_sitearch} |
||||||
|
pushd libiscsi |
||||||
|
%if %{with python2} |
||||||
|
%py2_install |
||||||
|
%endif |
||||||
|
# ended with python2 |
||||||
|
%py3_install |
||||||
|
popd |
||||||
|
|
||||||
|
|
||||||
|
%post |
||||||
|
%systemd_post iscsi.service iscsid.service iscsid.socket iscsi-onboot.service iscsi-init.service iscsi-shutdown.service |
||||||
|
|
||||||
|
%preun |
||||||
|
%systemd_preun iscsi.service iscsid.service iscsid.socket iscsi-onboot.service iscsi-init.service iscsi-shutdown.service |
||||||
|
|
||||||
|
%postun |
||||||
|
%systemd_postun iscsi.service iscsid.service iscsid.socket iscsi-onboot.service iscsi-init.service iscsi-shutdown.service |
||||||
|
|
||||||
|
%post iscsiuio |
||||||
|
%systemd_post iscsiuio.service iscsiuio.socket |
||||||
|
|
||||||
|
%preun iscsiuio |
||||||
|
%systemd_preun iscsiuio.service iscsiuio.socket |
||||||
|
|
||||||
|
%postun iscsiuio |
||||||
|
%systemd_postun iscsiuio.service iscsiuio.socket |
||||||
|
|
||||||
|
%triggerun -- iscsi-initiator-utils < 6.2.0.873-25 |
||||||
|
# prior to 6.2.0.873-24 iscsi.service was missing a Wants=remote-fs-pre.target |
||||||
|
# this forces remote-fs-pre.target active if needed for a clean shutdown/reboot |
||||||
|
# after upgrading this package |
||||||
|
if [ $1 -gt 0 ]; then |
||||||
|
/usr/bin/systemctl -q is-active iscsi.service |
||||||
|
if [ $? -eq 0 ]; then |
||||||
|
/usr/bin/systemctl -q is-active remote-fs-pre.target |
||||||
|
if [ $? -ne 0 ]; then |
||||||
|
SRC=`/usr/bin/systemctl show --property FragmentPath remote-fs-pre.target | cut -d= -f2` |
||||||
|
DST=/run/systemd/system/remote-fs-pre.target |
||||||
|
if [ $SRC != $DST ]; then |
||||||
|
cp $SRC $DST |
||||||
|
fi |
||||||
|
sed -i 's/RefuseManualStart=yes/RefuseManualStart=no/' $DST |
||||||
|
/usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : |
||||||
|
/usr/bin/systemctl start remote-fs-pre.target >/dev/null 2>&1 || : |
||||||
|
fi |
||||||
|
fi |
||||||
|
fi |
||||||
|
# added in 6.2.0.873-25 |
||||||
|
if [ $1 -gt 0 ]; then |
||||||
|
systemctl start iscsi-shutdown.service >/dev/null 2>&1 || : |
||||||
|
fi |
||||||
|
|
||||||
|
|
||||||
|
%files |
||||||
|
%doc README |
||||||
|
%dir %{_sharedstatedir}/iscsi |
||||||
|
%dir %{_sharedstatedir}/iscsi/nodes |
||||||
|
%dir %{_sharedstatedir}/iscsi/isns |
||||||
|
%dir %{_sharedstatedir}/iscsi/static |
||||||
|
%dir %{_sharedstatedir}/iscsi/slp |
||||||
|
%dir %{_sharedstatedir}/iscsi/ifaces |
||||||
|
%dir %{_sharedstatedir}/iscsi/send_targets |
||||||
|
%ghost %attr(0700, root, root) %{_rundir}/lock/iscsi |
||||||
|
%ghost %attr(0600, root, root) %{_rundir}/lock/iscsi/lock |
||||||
|
%{_unitdir}/iscsi.service |
||||||
|
%{_unitdir}/iscsi-onboot.service |
||||||
|
%{_unitdir}/iscsi-init.service |
||||||
|
%{_unitdir}/iscsi-shutdown.service |
||||||
|
%{_unitdir}/iscsid.service |
||||||
|
%{_unitdir}/iscsid.socket |
||||||
|
%{_libexecdir}/iscsi-mark-root-nodes |
||||||
|
%{_prefix}/lib/NetworkManager |
||||||
|
%{_tmpfilesdir}/iscsi.conf |
||||||
|
%dir %{_sysconfdir}/iscsi |
||||||
|
%attr(0600,root,root) %config(noreplace) %{_sysconfdir}/iscsi/iscsid.conf |
||||||
|
%{_sbindir}/iscsi-iname |
||||||
|
%{_sbindir}/iscsiadm |
||||||
|
%{_sbindir}/iscsid |
||||||
|
%{_sbindir}/iscsistart |
||||||
|
%{_libdir}/libiscsi.so.0 |
||||||
|
%{_mandir}/man8/iscsi-iname.8.gz |
||||||
|
%{_mandir}/man8/iscsiadm.8.gz |
||||||
|
%{_mandir}/man8/iscsid.8.gz |
||||||
|
%{_mandir}/man8/iscsistart.8.gz |
||||||
|
%{_libdir}/libopeniscsiusr.so.* |
||||||
|
|
||||||
|
%files iscsiuio |
||||||
|
%{_sbindir}/iscsiuio |
||||||
|
%{_unitdir}/iscsiuio.service |
||||||
|
%{_unitdir}/iscsiuio.socket |
||||||
|
%config(noreplace) %{_sysconfdir}/logrotate.d/iscsiuiolog |
||||||
|
%{_mandir}/man8/iscsiuio.8.gz |
||||||
|
|
||||||
|
%files devel |
||||||
|
%doc libiscsi/html |
||||||
|
%{_libdir}/libiscsi.so |
||||||
|
%{_includedir}/libiscsi.h |
||||||
|
%{_libdir}/libopeniscsiusr.so |
||||||
|
%{_includedir}/libopeniscsiusr.h |
||||||
|
%{_includedir}/libopeniscsiusr_common.h |
||||||
|
%{_includedir}/libopeniscsiusr_iface.h |
||||||
|
%{_includedir}/libopeniscsiusr_node.h |
||||||
|
%{_includedir}/libopeniscsiusr_session.h |
||||||
|
%{_libdir}/pkgconfig/libopeniscsiusr.pc |
||||||
|
|
||||||
|
%if %{with python2} |
||||||
|
%files -n python2-%{name} |
||||||
|
%{python2_sitearch}/* |
||||||
|
%endif |
||||||
|
# ended with python2 |
||||||
|
|
||||||
|
%files -n python3-%{name} |
||||||
|
%{python3_sitearch}/* |
||||||
|
|
||||||
|
%changelog |
||||||
|
* Mon Nov 01 2021 Chris Leech <cleech@redhat.com> - 6.2.1.4-2.git2a8f9d8 |
||||||
|
- 2016482: iscsi-init.service modified to work in initramfs |
||||||
|
|
||||||
|
* Wed Aug 11 2021 Chris Leech <cleech@redhat.com> - 6.2.1.4-1.git2a8f9d8 |
||||||
|
- new upstream |
||||||
|
- iscsiuio fixes for newer upstream bnx2x driver having version removed |
||||||
|
|
||||||
|
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 6.2.1.2-8.gita8fcb37 |
||||||
|
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags |
||||||
|
Related: rhbz#1991688 |
||||||
|
|
||||||
|
* Wed Jun 16 2021 Mohan Boddu <mboddu@redhat.com> - 6.2.1.2-7.gita8fcb37 |
||||||
|
- Rebuilt for RHEL 9 BETA for openssl 3.0 |
||||||
|
Related: rhbz#1971065 |
||||||
|
|
||||||
|
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 6.2.1.2-6.gita8fcb37 |
||||||
|
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 |
||||||
|
|
||||||
|
* Thu Feb 18 2021 Chris Leech <cleech@redhat.com> - 6.2.1.2-5.gita8fcb37 |
||||||
|
- unit file changes |
||||||
|
|
||||||
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.1.2-4.gita8fcb37 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild |
||||||
|
|
||||||
|
* Thu Nov 05 2020 Chris Leech <cleech@redhat.com> - 6.2.1.2-3.gita8fcb37 |
||||||
|
- add libopeniscsiusr content to iscsi-initiator-utils-devel |
||||||
|
|
||||||
|
* Mon Sep 21 2020 Chris Leech <cleech@redhat.com> - 6.2.1.2-1.git13e7f58 |
||||||
|
- iscsiadm overflow regression when discovering many targets at once |
||||||
|
- check for invalid session id during stop connection |
||||||
|
- add ability to attempt target logins asynchronously |
||||||
|
|
||||||
|
* Tue Aug 11 2020 Christian Glombek <cglombek@redhat.com> - 6.2.1.2-0.git802688d |
||||||
|
- Update to upstream v2.1.2 |
||||||
|
- Remove systemctl enable calls, as this is now handled by Fedora presets |
||||||
|
- per the guidelines |
||||||
|
- Remove initiator name generation, as this is now handled by an init service |
||||||
|
- Install ghost lockfile and dir to /run instead of /var |
||||||
|
- Rebased/fixed up patches |
||||||
|
- Fixed macros in comments and comments after macros |
||||||
|
- Merged service-file-tweaks.patch and |
||||||
|
- improve-systemd-service-files-for-boot-session-handl.patch |
||||||
|
- into unit-file-tweaks.patch |
||||||
|
- Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1493296 |
||||||
|
- Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1729740 |
||||||
|
- Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1834509 |
||||||
|
|
||||||
|
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.1.1-0.gitac87641.2 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild |
||||||
|
|
||||||
|
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 6.2.1.1-0.gitac87641.1 |
||||||
|
- Rebuilt for Python 3.9 |
||||||
|
|
||||||
|
* Mon Mar 02 2020 Chris Leech <cleech@redhat.com> - 6.2.1.1-0.gitac87641 |
||||||
|
- rebase to new upstream v2.1.1 |
||||||
|
- enhanced CHAP options are now a configuration to deal with broken targets (#1774746) |
||||||
|
|
||||||
|
* Sun Mar 01 2020 Adam Williamson <awilliam@redhat.com> - 6.2.1.0-2.git4440e57 |
||||||
|
- Backport upstream d3daa7a2 to fix bz #1774746 |
||||||
|
|
||||||
|
* Mon Feb 24 2020 Than Ngo <than@redhat.com> - 6.2.1.0-1.git4440e57 |
||||||
|
- upstream patch to support gcc -fno-common option |
||||||
|
|
||||||
|
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.1.0-0.git4440e57.1 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild |
||||||
|
|
||||||
|
* Tue Nov 19 2019 Chris Leech <cleech@redhat.com> - 6.2.1.0-0.git4440e57 |
||||||
|
- update to upstream v2.1.0 |
||||||
|
|
||||||
|
* Thu Aug 22 2019 Lubomir Rintel <lkundrak@v3.sk> - 6.2.0.876-12.gitf3c8e90 |
||||||
|
- Move the NetworkManager dispatcher script out of /etc |
||||||
|
|
||||||
|
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 6.2.0.876-11.gitf3c8e90 |
||||||
|
- Rebuilt for Python 3.8 |
||||||
|
|
||||||
|
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.0.876-10.gitf3c8e90 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild |
||||||
|
|
||||||
|
* Thu May 30 2019 Chris Leech <cleech@redhat.com> - 6.2.0.876-9.gitf3c8e90 |
||||||
|
- FTBFS: %%systemd_postun scriptlets need service files as an argument |
||||||
|
|
||||||
|
* Tue Feb 12 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 6.2.0.876-8.gitf3c8e90 |
||||||
|
- Remove obsolete scriptlets |
||||||
|
|
||||||
|
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.0.876-7.gitf3c8e90 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild |
||||||
|
|
||||||
|
* Thu Jan 10 2019 Miro Hrončok <mhroncok@redhat.com> - 6.2.0.876-6.gitf3c8e90 |
||||||
|
- Disable python2 build |
||||||
|
|
||||||
|
* Tue Jul 10 2018 Chris Leech <cleech@redhat.com> - 6.2.0.876-5.gitf3c8e90 |
||||||
|
- iscsiuio: add mutex to protect netlink buffer for pass-through xmit |
||||||
|
- iscsid: get gateway information from sysfs when recovering sessions |
||||||
|
- enabled MaxOustandingR2T negotiation during login |
||||||
|
|
||||||
|
* Mon Jun 25 2018 Adam Williamson <awilliam@redhat.com> - 6.2.0.876-4.git4ef9261 |
||||||
|
- Rebuilt for Python 3.7, again |
||||||
|
|
||||||
|
* Mon Jun 25 2018 Adam Williamson <awilliam@redhat.com> - 6.2.0.876-3.git4ef9261 |
||||||
|
- Link libiscsi against libopeniscsiusr (bz #1594946) (python 3.6 build) |
||||||
|
|
||||||
|
* Wed Jun 20 2018 Miro Hrončok <mhroncok@redhat.com> - 6.2.0.876-2.git4ef9261 |
||||||
|
- Rebuilt for Python 3.7 |
||||||
|
|
||||||
|
* Tue Jun 19 2018 Chris Leech <cleech@redhat.com> - 6.2.0.876-1.git4ef9261 |
||||||
|
- pull in post 2.0.876 tagged fixes from upstream git |
||||||
|
- minimal packaging of libopeniscsiusr (internal use only, no dev package yet) |
||||||
|
- Conditionalize the python2 subpackage [Charalampos Stratakis <cstratak@redhat.com>] |
||||||
|
|
||||||
|
* Tue Jun 19 2018 Chris Leech <cleech@redhat.com> - 6.2.0.876-1.git24580ad |
||||||
|
- rebase to upstream 2.0.876 |
||||||
|
|
||||||
|
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 6.2.0.874-10.git86e8892 |
||||||
|
- Rebuilt for Python 3.7 |
||||||
|
|
||||||
|
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.0.874-9.git86e8892 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild |
||||||
|
|
||||||
|
* Fri Jan 05 2018 Iryna Shcherbina <ishcherb@redhat.com> - 6.2.0.874-8.git86e8892 |
||||||
|
- Update Python 2 dependency declarations to new packaging standards |
||||||
|
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) |
||||||
|
|
||||||
|
* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 6.2.0.874-7.git86e8892 |
||||||
|
- Python 2 binary package renamed to python2-iscsi-initiator-utils |
||||||
|
See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 |
||||||
|
|
||||||
|
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.0.874-6.git86e8892 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild |
||||||
|
|
||||||
|
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.0.874-5.git86e8892 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild |
||||||
|
|
||||||
|
* Wed Apr 12 2017 Chris Leech <cleech@redhat.com> - 6.2.0.874-4.git86e8892 |
||||||
|
- rebuild to use shared libisns |
||||||
|
|
||||||
|
* Tue Feb 28 2017 Chris Leech <cleech@redhat.com> - 6.2.0.874-3.git86e8892 |
||||||
|
- libiscsi: fix discovery command timeout regression |
||||||
|
- libiscsi: fix format security build errors |
||||||
|
|
||||||
|
* Thu Feb 16 2017 Chris Leech <cleech@redhat.com> - 6.2.0.874-2.git86e8892 |
||||||
|
- fix regression with iscsiadm discoverydb commands having a 0 timeout |
||||||
|
|
||||||
|
* Thu Feb 09 2017 Chris Leech <cleech@redhat.com> - 6.2.0.874-1 |
||||||
|
- update to 2.0.874 |
||||||
|
|
||||||
|
* Mon Dec 12 2016 Charalampos Stratakis <cstratak@redhat.com> - 6.2.0.873-35.git4c1f2d9 |
||||||
|
- Rebuild for Python 3.6 |
||||||
|
|
||||||
|
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.2.0.873-34.git4c1f2d9 |
||||||
|
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages |
||||||
|
|
||||||
|
* Fri Feb 19 2016 Chris Leech <cleech@redhat.com> - 6.2.0.873-33.git4c1f2d9 |
||||||
|
- sync with upstream |
||||||
|
- sysfs handling changes to speed up operations over large number of sessions |
||||||
|
|
||||||
|
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.0.873-32.git4c9d6f9 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild |
||||||
|
|
||||||
|
* Wed Feb 3 2016 Michael Schwendt <mschwendt@fedoraproject.org> - 6.2.0.873-31.git4c9d6f9 |
||||||
|
- BuildRequires: isns-utils-static for -lisns (bz #1291913) |
||||||
|
|
||||||
|
* Tue Nov 03 2015 Robert Kuska <rkuska@redhat.com> - 6.2.0.873-30.git4c9d6f9 |
||||||
|
- Rebuilt for Python3.5 rebuild |
||||||
|
|
||||||
|
* Tue Oct 06 2015 Chris Leech <cleech@redhat.com> - 6.2.0.873-29.git4c9d6f9 |
||||||
|
- rebase with upstream, change Source0 url to github |
||||||
|
- build with external isns-utils |
||||||
|
|
||||||
|
* Mon Oct 05 2015 Chris Leech <cleech@redhat.com> - 6.2.0.873-28.git6aa2c9b |
||||||
|
- fixed broken multiple trigger scripts, removed old pre-systemd migration triggers |
||||||
|
- added libiscsi session API patch (bz #1262279) |
||||||
|
|
||||||
|
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.2.0.873-27.git6aa2c9b |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild |
||||||
|
|
||||||
|
* Wed Jun 10 2015 Chris Leech <cleech@redhat.com> - 6.2.0.873-26.git6aa2c9b |
||||||
|
- rebase to upstream snapshot |
||||||
|
- add patch to improve GIL lock performance in libiscsi |
||||||
|
- Split Python 2 and Python 3 bindings out into subpackages |
||||||
|
|
||||||
|
* Wed Jan 28 2015 Chris Leech <cleech@redhat.com> - 6.2.0.873-25.gitc9d830b |
||||||
|
- split out session logout on shutdown to a separate service |
||||||
|
- 985321 roll up libiscsi patches, update python bindings to support python3 |
||||||
|
- scriptlets were never split out properly for the iscsiuio subpackage |
||||||
|
- fix regression in network interface binding |
||||||
|
- created iscsi-shutdown.service to ensure that session cleanup happens |
||||||
|
- Add --with-slp=no |
||||||
|
- segfault from unexpected netlink event during discovery |
||||||
|
- inhibit strict aliasing optimizations in iscsiuio, rpmdiff error |
||||||
|
|
||||||
|
* Thu Oct 23 2014 Chris Leech <cleech@redhat.com> - 6.2.0.873-24.gitc9d830b |
||||||
|
- sync with upstream v2.0.873-84-gc9d830b |
||||||
|
- ignore iscsiadm return in iscsi.service |
||||||
|
- make sure systemd order against remote mounts is correct |
||||||
|
- add discovery as a valid mode in iscsiadm.8 |
||||||
|
- make sure to pass --with-security=no to isns configure |
||||||
|
|
||||||
|
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.2.0.873-23 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild |
||||||
|
|
||||||
|
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.2.0.873-22 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild |
||||||
|
|
||||||
|
* Mon Apr 14 2014 Chris Leech <cleech@redhat.com> - 6.2.0.873-21 |
||||||
|
- boot session handling improvements |
||||||
|
- split out iscsiuio into a seperate sub-package |
||||||
|
- sync with new upstream additions |
||||||
|
- revert change to return code when calling login_portal for sessions |
||||||
|
that already exist, as it impacts users scripting around iscsiadm |
||||||
|
|
||||||
|
* Tue Dec 10 2013 Chris Leech <cleech@redhat.com> - 6.2.0.873-17 |
||||||
|
- fix regression in glob use, inappropriate error code escape |
||||||
|
- clean up dead node links from discovery when reusing tpgt |
||||||
|
|
||||||
|
* Mon Nov 25 2013 Chris Leech <cleech@redhat.com> - 6.2.0.873-16 |
||||||
|
- fix iscsiuio socket activation |
||||||
|
- have systemd start socket units on iscsiadm use, if not already listening |
||||||
|
|
||||||
|
* Sun Sep 15 2013 Chris Leech <cleech@redhat.com> - 6.2.0.873-15 |
||||||
|
- move /sbin to /usr/sbin |
||||||
|
- use rpm macros in install rules |
||||||
|
|
||||||
|
* Fri Sep 13 2013 Chris Leech <cleech@redhat.com> - 6.2.0.873-14 |
||||||
|
- fix iscsiuio hardened build and other compiler flags |
||||||
|
|
||||||
|
* Fri Aug 23 2013 Andy Grover <agrover@redhat.com> - 6.2.0.873-13 |
||||||
|
- Fix patch 0041 to check session != NULL before calling iscsi_sysfs_read_boot() |
||||||
|
|
||||||
|
* Tue Aug 20 2013 Chris Leech <cleech@redhat.com> - 6.2.0.873-12 |
||||||
|
- fix regression in last build, database records can't be accessed |
||||||
|
|
||||||
|
* Mon Aug 19 2013 Chris Leech <cleech@redhat.com> - 6.2.0.873-11 |
||||||
|
- iscsi boot related fixes |
||||||
|
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 |
||||||
|
remove patches related to running iscsid from initrd, possible to revisit later |
||||||
|
|
||||||
|
* Sun Aug 18 2013 Chris Leech <cleech@redhat.com> - 6.2.0.873-10 |
||||||
|
- sync with upstream git, minor context fixes after rebase of out-of-tree patches |
||||||
|
- iscsiuio is merged upstream, remove old source archive and patches |
||||||
|
- spec cleanups to fix rpmlint issues |
||||||
|
|
||||||
|
* Sun Aug 4 2013 Peter Robinson <pbrobinson@fedoraproject.org> 6.2.0.873-9 |
||||||
|
- Fix FTBFS, cleanup spec |
||||||
|
|
||||||
|
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.2.0.873-8 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild |
||||||
|
|
||||||
|
* Tue Jun 11 2013 Chris Leech <cleech@redhat.com> - 6.2.0.873-7 |
||||||
|
- Use the systemd tmpfiles service to recreate lockfiles in /var/lock |
||||||
|
- 955167 build as a position independent executable |
||||||
|
- 894576 fix order of setuid/setgid and drop additional groups |
||||||
|
|
||||||
|
* Tue May 28 2013 Chris Leech <cleech@redhat.com> - 6.2.0.873-6 |
||||||
|
- Don't have iscsiadm scan for autostart record if node db is empty (bug #951951) |
||||||
|
|
||||||
|
* Tue Apr 30 2013 Orion Poplawski <orion@cora.nwra.com> - 6.2.0.873-5 |
||||||
|
- Fix typo in NM dispatcher script (bug #917058) |
||||||
|
|
||||||
|
* Thu Feb 21 2013 Chris Leech <cleech@redhat.com> - 6.2.0.873-4 |
||||||
|
- build with libkmod support, instead of calling out to modprobe |
||||||
|
- enable socket activation by default |
||||||
|
|
||||||
|
* Thu Jan 24 2013 Kalev Lember <kalevlember@gmail.com> - 6.2.0.873-3 |
||||||
|
- Fix the postun script to not use ldconfig as the interpreter |
||||||
|
|
||||||
|
* Wed Jan 23 2013 Chris Leech <cleech@redhat.com> - 6.2.0.873-2 |
||||||
|
- package iscsi_mark_root_nodes script, it's being referenced by the unit files |
||||||
|
|
||||||
|
* Tue Jan 22 2013 Chris Leech <cleech@redhat.com> - 6.2.0.873-1 |
||||||
|
- rebase to new upstream code |
||||||
|
- systemd conversion |
||||||
|
- 565245 Fix multilib issues caused by timestamp in doxygen footers |
||||||
|
|
||||||
|
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.2.0.872-19 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild |
||||||
|
|
||||||
|
* Tue Feb 14 2012 Mike Christie <mchristi@redhat.com> 6.2.0.872.18 |
||||||
|
- 789683 Fix boot slow down when the iscsi service is started |
||||||
|
(regression added in 6.2.0.872.16 when the nm wait was added). |
||||||
|
|
||||||
|
* Mon Feb 6 2012 Mike Christie <mchristi@redhat.com> 6.2.0.872.17 |
||||||
|
- 786174 Change iscsid/iscsi service startup, so it always starts |
||||||
|
when called. |
||||||
|
|
||||||
|
* Sat Feb 4 2012 Mike Christie <mchristi@redhat.com> 6.2.0.872.16 |
||||||
|
- 747479 Fix iscsidevs handling of network requirement |
||||||
|
|
||||||
|
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.2.0.872-15 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild |
||||||
|
|
||||||
|
* Wed Nov 30 2011 Mike Christie <mcrhsit@redhat.com> 6.2.0.872.14 |
||||||
|
- Fix version string to reflect fedora and not rhel. |
||||||
|
|
||||||
|
* Tue Oct 18 2011 Mike Christie <mcrhsit@redhat.com> 6.2.0.872.13 |
||||||
|
- Update iscsi tools. |
||||||
|
|
||||||
|
* Sat Apr 30 2011 Hans de Goede <hdegoede@redhat.com> - 6.2.0.872-12 |
||||||
|
- Change iscsi init scripts to check for networking being actually up, rather |
||||||
|
then for NetworkManager being started (#692230) |
||||||
|
|
||||||
|
* Tue Apr 26 2011 Hans de Goede <hdegoede@redhat.com> - 6.2.0.872-11 |
||||||
|
- Fix iscsid autostarting when upgrading from an older version |
||||||
|
(add iscsid.startup key to iscsid.conf on upgrade) |
||||||
|
- Fix printing of [ OK ] when successfully stopping iscsid |
||||||
|
- systemd related fixes: |
||||||
|
- Add Should-Start/Stop tgtd to iscsi init script to fix (re)boot from |
||||||
|
hanging when using locally hosted targets |
||||||
|
- %%ghost /var/lock/iscsi and contents (#656605) |
||||||
|
|
||||||
|
* Mon Apr 25 2011 Mike Christie <mchristi@redhat.com> 6.2.0.872-10 |
||||||
|
- Fix iscsi init scripts check for networking being up (#692230) |
||||||
|
|
||||||
|
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.2.0.872-9 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild |
Loading…
Reference in new issue