diff --git a/0012-fix-iscsiadm-op-new-report-to-cannot-rename-error.patch b/0012-fix-iscsiadm-op-new-report-to-cannot-rename-error.patch new file mode 100644 index 0000000..cc99806 --- /dev/null +++ b/0012-fix-iscsiadm-op-new-report-to-cannot-rename-error.patch @@ -0,0 +1,80 @@ +From 181dbc293bf9d0a0c9674d16db6f7d9b1ed19b49 Mon Sep 17 00:00:00 2001 +From: wubo +Date: Mon, 21 Sep 2020 18:54:38 +0800 +Subject: [PATCH] Fix iscsiadm op new report to cannort rename error + +Since patched 9009-fix-default-file-corrupt.patch, +In order to solve the abnormal power failure during iscsiadm login, +the node configuration file is cleared, and the target +problem cannot be found after restarting. + +The difference between automatically creating target nodes +and the target nodes through the discovery process is not considered. +The automatically created taregt node s is an regual file, +but a directory through the discovery process. +It is incorrect to rename a regual file as a directory + +1) Automatically created +# iscsiadm -m node +9.84.7.19:3260,4294967295iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.970bb3607d7d + +# ls -l /etc/iscsi/nodes/iqn.2003-01.org.linux-iscsi.localhost.x8664\:sn.970bb3607d7d/ +total 4 +-rw-------. 1 root root 2096 Sep 21 22:44 9.84.7.19,3260 + +2) Discovery process +# iscsiadm -m node +9.84.7.19:3260,1iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.970bb3607d7d +# ls -l /etc/iscsi/nodes/iqn.2003-01.org.linux-iscsi.localhost.x8664\:sn.970bb3607d7d/ +total 4 +drw-------. 2 root root 4096 Sep 21 22:44 9.84.7.19,3260,1 + +rec->tpgt == PORTAL_GROUP_TAG_UNKNOWN is automatic mode, +rec->tpgt is not PORTAL_GROUP_TAG_UNKNOWN is dicovery mode + +Add to support the Two mode. + +Signed-off-by: Wu Bo +--- + usr/idbm.c | 17 ++++++++++++++--- + 1 file changed, 14 insertions(+), 3 deletions(-) + +diff --git a/usr/idbm.c b/usr/idbm.c +index 74b1dec..50e4d7e 100644 +--- a/usr/idbm.c ++++ b/usr/idbm.c +@@ -2097,6 +2097,11 @@ mkdir_portal: + rec->name, rec->conn[0].address, rec->conn[0].port, rec->tpgt, + rec->iface.name); + open_conf: ++ if (rec->tpgt == PORTAL_GROUP_TAG_UNKNOWN) { ++ snprintf(portal, PATH_MAX, "%s/%s/%s,%d_bak", 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: %s", portal, strerror(errno)); +@@ -2131,10 +2136,16 @@ open_conf: + rc = ISCSI_ERR_IDBM; + goto free_portal; + } ++ ++ if (rec->tpgt == PORTAL_GROUP_TAG_UNKNOWN) { ++ snprintf(portalDef, PATH_MAX, "%s/%s/%s,%d", NODE_CONFIG_DIR, ++ rec->name, rec->conn[0].address, rec->conn[0].port); ++ } else { ++ snprintf(portalDef, 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); ++ } + +- snprintf(portalDef, 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); + /* Renaming default_bak->default. */ + if (rename(portal, portalDef) < 0) { + log_error("Cannot rename %s -> %s\n", portal, portalDef); +-- +1.8.3.1 + diff --git a/open-iscsi.spec b/open-iscsi.spec index b3dc148..afc5556 100644 --- a/open-iscsi.spec +++ b/open-iscsi.spec @@ -4,7 +4,7 @@ Name: open-iscsi Version: 2.1.3 -Release: 1 +Release: 2 Summary: ISCSI software initiator daemon and utility programs License: GPLv2+ and BSD URL: http://www.open-iscsi.org @@ -20,6 +20,7 @@ patch8: 0008-default-file-zero-after-power-outage.patch patch9: 0009-Modify-iscsid.service-to-keep-same-with-previous-ver.patch patch10: 0010-iscsiadm-fix-infinite-loop-while-recv-returns-0.patch patch11: 0011-not-send-stop-message-if-iscsid-absent.patch +patch12: 0012-fix-iscsiadm-op-new-report-to-cannot-rename-error.patch BuildRequires: flex bison doxygen kmod-devel systemd-units gcc git isns-utils-devel systemd-devel BuildRequires: autoconf automake libtool libmount-devel openssl-devel pkg-config gdb @@ -152,6 +153,9 @@ fi %{_mandir}/man8/* %changelog +* Mon Feb 22 2021 haowenchao - 2.1.3-2 +- Fix iscsiadm op new report to can not rename error + * Thu Jan 28 2021 haowenchao - 2.1.3-1 - Update open-iscsi version to 2.1.3-1