open-iscsi/0009-fix-iscsiadm-op-new-report-to-cannot-rename-error.patch
Wenchao Hao 03045f674c Remove useless patch
remove patch 0009-fix-iscsiadm-op-new-report-to-cannot-rename-error.patch

This patch get iscsid's pid from pidfile /var/run/iscsid.pid, and judge
if iscsid is alive according to that pid. While now iscsid.service would
not hold a pidfile, so this patch can not work as desired.

What's more, iscsiadm would try to connect to iscsid before send request
to iscsid, if iscsid is not alive, the connection would failed and
return error.

At wrost, if iscsid died after connect success, it would timeout after
1 second. And the patch
0009-fix-iscsiadm-op-new-report-to-cannot-rename-error.patch can not fix
this too.

Signed-off-by: Wenchao Hao <haowenchao@huawei.com>
2022-02-08 19:42:25 +08:00

81 lines
2.8 KiB
Diff

From 181dbc293bf9d0a0c9674d16db6f7d9b1ed19b49 Mon Sep 17 00:00:00 2001
From: wubo <wubo40@huawei.com>
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 <wubo40@huawei>
---
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