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>
This commit is contained in:
Wenchao Hao 2022-02-08 19:31:33 +08:00
parent 82e5df95c4
commit 03045f674c
10 changed files with 14 additions and 131 deletions

View File

@ -1,119 +0,0 @@
From d99f5bb9a8fcd217262d765b096df30724c774e9 Mon Sep 17 00:00:00 2001
From: pengyeqing <pengyeqing@huawei.com>
Date: Mon, 20 Jan 2020 19:43:52 +0800
Subject: [PATCH] iscsi-initiator-utils: not send stop message if iscsid absent
Conflict: 1. Remove modification about iscsid.service, these modification are
in 0009-Modify-iscsid.service-to-keep-same-with-previous-ver.patch
2. change log_error("iscsid %d maybe ...) to
log_error("iscsid %ld maybe ...) to avoid compile failure
Signed-off-by: pengyeqing <pengyeqing@huawei.com>
---
usr/iscsiadm.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 71 insertions(+)
diff --git a/usr/iscsiadm.c b/usr/iscsiadm.c
index f2bd721..b386abe 100644
--- a/usr/iscsiadm.c
+++ b/usr/iscsiadm.c
@@ -69,6 +69,8 @@ static char program_name[] = "iscsiadm";
static char config_file[TARGET_NAME_MAXLEN];
extern struct iscsi_ipc *ipc;
+#define ISCSIPID_LEN 256
+
enum iscsiadm_mode {
MODE_DISCOVERY,
MODE_DISCOVERYDB,
@@ -267,11 +269,52 @@ str_to_portal_type(char *str)
return ptype;
}
+/**
+ * get_content() - Utility function to read hex values from sysfs
+ * @param pidfile - path to use
+ * @parm buf - this is the value returned from the entry
+ * @return 0 on success <0 on failure
+ * @note: buf[] return without '\0'
+ */
+static int get_file_content(const char *pidfile, char buf[], int buflen)
+{
+ int rc = 0;
+ FILE *fp = NULL;
+ size_t chars_read = 0;
+
+ fp = fopen(pidfile, "r");
+ if (fp == NULL) {
+ log_error("Could not open path: %s [%s]",
+ pidfile, strerror(errno));
+ rc = -EIO;
+ goto error_fopen;
+ }
+
+ chars_read = fread(buf, 1, buflen, fp);
+ if ((chars_read <= 0) && ferror(fp)) {
+ log_error("Could not read from: %s [%s]",
+ pidfile, strerror(ferror(fp)));
+ rc = -EIO;
+ goto error;
+ }
+
+error:
+ fclose(fp);
+
+error_fopen:
+ return rc;
+}
+
static void kill_iscsid(int priority, int tmo)
{
iscsiadm_req_t req;
iscsiadm_rsp_t rsp;
int rc;
+ char *pTmp = NULL;
+ char iscsidpid[ISCSIPID_LEN] = {0};
+ char procpid[ISCSIPID_LEN] = {0};
+ char cmdline[ISCSIPID_LEN] = {0};
+ char iscsidcmdline[ISCSIPID_LEN] = {0};
/*
* We only support SIGTERM like stoppage of iscsid for now.
@@ -287,6 +330,34 @@ static void kill_iscsid(int priority, int tmo)
return;
}
+ /* if pid of iscsid is present, go on; or return directly */
+ rc = get_file_content(PID_FILE, iscsidpid, ISCSIPID_LEN);
+ if (rc != 0) {
+ return;
+ }
+
+ snprintf(procpid, ISCSIPID_LEN, "/proc/%ld/cmdline", atol(iscsidpid));
+
+ rc = get_file_content(procpid, cmdline, ISCSIPID_LEN);
+ if (rc != 0) {
+ return;
+ }
+
+ snprintf(iscsidcmdline, ISCSIPID_LEN, "%s", cmdline);
+
+ pTmp = strstr(iscsidcmdline, "iscsid");
+ if (NULL == pTmp) {
+ log_error("iscsid pid mismatch proc cmdline, pid:%ld, cmdline:%s.\n", atol(iscsidpid), iscsidcmdline);
+ return;
+ } else {
+ rc = kill(atol(iscsidpid), 0);
+ if (ESRCH == rc) {
+ log_error("iscsid %ld maybe in zombie.\n", atol(iscsidpid));
+ return;
+ }
+ }
+ /* end */
+
memset(&req, 0, sizeof(req));
req.command = MGMT_IPC_IMMEDIATE_STOP;
rc = iscsid_exec_req(&req, &rsp, 0, tmo);
--
1.8.3.1

View File

@ -4,7 +4,7 @@
Name: open-iscsi
Version: 2.1.5
Release: 5
Release: 6
Summary: ISCSI software initiator daemon and utility programs
License: GPLv2+ and BSD
URL: http://www.open-iscsi.com
@ -17,15 +17,14 @@ patch5: 0005-do-not-sync-session-when-a-session-is-already-created.patch
patch6: 0006-fix-default-file-corrupt.patch
patch7: 0007-fix-iscsiadm-logout-timeout.patch
patch8: 0008-default-file-zero-after-power-outage.patch
patch9: 0009-not-send-stop-message-if-iscsid-absent.patch
patch10: 0010-fix-iscsiadm-op-new-report-to-cannot-rename-error.patch
patch11: 0011-Fix-compiler-error-introduced-with-recent-IPv6-commi.patch
patch12: 0012-Remove-iscsid.service-s-dependence-of-iscsi-init.ser.patch
patch13: 0013-Remove-session-info-password-print.patch
patch14: 0014-Remove-iscsiuio-from-build-and-install-recipe.patch
patch15: 0015-Remove-iscsiuio-source-code.patch
patch16: 0016-Remove-iscsiuio-from-config-and-service-file.patch
patch17: 0017-Remove-iscsi-init.service-from-iscsi-and-iscsid-serv.patch
patch9: 0009-fix-iscsiadm-op-new-report-to-cannot-rename-error.patch
patch10: 0010-Fix-compiler-error-introduced-with-recent-IPv6-commi.patch
patch11: 0011-Remove-iscsid.service-s-dependence-of-iscsi-init.ser.patch
patch12: 0012-Remove-session-info-password-print.patch
patch13: 0013-Remove-iscsiuio-from-build-and-install-recipe.patch
patch14: 0014-Remove-iscsiuio-source-code.patch
patch15: 0015-Remove-iscsiuio-from-config-and-service-file.patch
patch16: 0016-Remove-iscsi-init.service-from-iscsi-and-iscsid-serv.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
@ -152,10 +151,13 @@ fi
%{_mandir}/man8/*
%changelog
* Tue Feb 8 2021 haowenchao <haowenchao@huawei.com> - 2.1.5-5
* Tue Feb 8 2022 haowenchao <haowenchao@huawei.com> - 2.1.5-6
- Remove useless patch
* Tue Feb 8 2022 haowenchao <haowenchao@huawei.com> - 2.1.5-5
- Remove iscsi's dependence of iscsid-init.service
* Thu Jan 26 2022 haowenchao <haowenchao@huawei.com> - 2.1.5-4
* Wed Jan 26 2022 haowenchao <haowenchao@huawei.com> - 2.1.5-4
- Remove tool iscsiuio
* Tue Jan 25 2022 haowenchao <haowenchao@huawei.com> - 2.1.5-3