iscsid and iscsiuio changes to support integration with dracut and systemd

This commit is contained in:
Chris Leech 2013-01-22 13:45:47 -08:00
parent 0e55d5ba8c
commit 6bbb925771
20 changed files with 1091 additions and 10 deletions

View File

@ -0,0 +1,61 @@
From b1799fe84ed94a19bba6bcd7284ce8b038be4ffe Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Mon, 10 Dec 2012 13:20:47 -0800
Subject: iscsid: add --initrd option to set run from initrd hint for systemd
See http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons
Signed-off-by: Chris Leech <cleech@redhat.com>
---
usr/iscsid.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/usr/iscsid.c b/usr/iscsid.c
index b4bb65b..7d71085 100644
--- a/usr/iscsid.c
+++ b/usr/iscsid.c
@@ -61,6 +61,7 @@ static pid_t log_pid;
static gid_t gid;
static int daemonize = 1;
static int mgmt_ipc_fd;
+static int initrd = 0;
static struct option const long_options[] = {
{"config", required_argument, NULL, 'c'},
@@ -73,6 +74,7 @@ static struct option const long_options[] = {
{"pid", required_argument, NULL, 'p'},
{"help", no_argument, NULL, 'h'},
{"version", no_argument, NULL, 'v'},
+ {"initrd", no_argument, &initrd, 1},
{NULL, 0, NULL, 0},
};
@@ -95,6 +97,7 @@ Open-iSCSI initiator daemon.\n\
-p, --pid=pidfile use pid file (default " PID_FILE ").\n\
-h, --help display this help and exit\n\
-v, --version display version and exit\n\
+ --initrd run from initrd\n\
");
}
exit(status);
@@ -383,12 +386,17 @@ int main(int argc, char *argv[])
case 'h':
usage(0);
break;
+ case 0:
+ break;
default:
usage(1);
break;
}
}
+ if (initrd)
+ argv[0][0] = '@';
+
/* initialize logger */
log_pid = log_init(program_name, DEFAULT_AREA_SIZE,
daemonize ? log_do_log_daemon : log_do_log_std, NULL);
--
1.7.11.7

View File

@ -0,0 +1,157 @@
From ac3447ab680ef5319717fc6b85a4c5b22e652e5e Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Fri, 7 Dec 2012 17:01:42 -0800
Subject: iscsiadm, iscsid: newroot command to survive switch_root
When started from initramfs, iscsid needs to be able to chroot itself
to the runtime filesystem before the switch_root occurs. In the
initramfs "iscsiadm --newroot {root fs mount before switch}" should be
called before the switch_root.
Signed-off-by: Chris Leech <cleech@redhat.com>
---
usr/iscsiadm.c | 30 ++++++++++++++++++++++++++++++
usr/mgmt_ipc.c | 11 +++++++++++
usr/mgmt_ipc.h | 6 +++++-
3 files changed, 46 insertions(+), 1 deletion(-)
diff --git a/usr/iscsiadm.c b/usr/iscsiadm.c
index 8f9de05..323d0a8 100644
--- a/usr/iscsiadm.c
+++ b/usr/iscsiadm.c
@@ -111,6 +111,7 @@ static struct option const long_options[] =
{"packetsize", required_argument, NULL, 'b'},
{"count", required_argument, NULL, 'c'},
{"interval", required_argument, NULL, 'i'},
+ {"newroot", required_argument, NULL, 0},
{NULL, 0, NULL, 0},
};
static char *short_options = "RlDVhm:a:b:c:C:p:P:T:H:i:I:U:k:L:d:r:n:v:o:sSt:u";
@@ -131,6 +132,7 @@ iscsiadm -m session [ -hV ] [ -d debug_level ] [ -P printlevel] [ -r sessionid
iscsiadm -m iface [ -hV ] [ -d debug_level ] [ -P printlevel ] [ -I ifacename | -H hostno|MAC ] [ [ -o operation ] [ -n name ] [ -v value ] ] [ -C ping [ -a ip ] [ -b packetsize ] [ -c count ] [ -i interval ] ]\n\
iscsiadm -m fw [ -l ]\n\
iscsiadm -m host [ -P printlevel ] [ -H hostno|MAC ] [ -C chap [ -o operation ] [ -v chap_tbl_idx ] ]\n\
+iscsiadm --newroot switch_root_path\n\
iscsiadm -k priority\n");
}
exit(status);
@@ -251,6 +253,22 @@ static void kill_iscsid(int priority)
}
}
+static void do_newroot(char *newroot)
+{
+ iscsiadm_req_t req;
+ iscsiadm_rsp_t rsp;
+ int rc;
+
+ memset(&req, 0, sizeof(req));
+ req.command = MGMT_IPC_NEWROOT;
+ strncpy(req.u.newroot.path, newroot, PATH_MAX);
+ rc = iscsid_exec_req(&req, &rsp, 0);
+ if (rc) {
+ iscsi_err_print_msg(rc);
+ log_error("Could not send NEWROOT command");
+ }
+}
+
/*
* TODO: we can display how the ifaces are related to node records.
* And we can add a scsi_host mode which would display how
@@ -2397,6 +2415,7 @@ main(int argc, char **argv)
{
char *ip = NULL, *name = NULL, *value = NULL;
char *targetname = NULL, *group_session_mgmt_mode = NULL;
+ char *newroot = NULL;
int ch, longindex, mode=-1, port=-1, do_login=0, do_rescan=0;
int rc=0, sid=-1, op=OP_NOOP, type=-1, do_logout=0, do_stats=0;
int do_login_all=0, do_logout_all=0, info_level=-1, num_ifaces = 0;
@@ -2433,6 +2452,12 @@ main(int argc, char **argv)
while ((ch = getopt_long(argc, argv, short_options,
long_options, &longindex)) >= 0) {
switch (ch) {
+ case 0:
+ if (long_options[longindex].flag != 0)
+ break;
+ if (!strcmp(long_options[longindex].name, "newroot"))
+ newroot = optarg;
+ break;
case 'k':
killiscsid = atoi(optarg);
if (killiscsid < 0) {
@@ -2579,6 +2604,11 @@ main(int argc, char **argv)
goto free_ifaces;
}
+ if (newroot) {
+ do_newroot(newroot);
+ goto free_ifaces;
+ }
+
if (mode < 0)
usage(ISCSI_ERR_INVAL);
diff --git a/usr/mgmt_ipc.c b/usr/mgmt_ipc.c
index 87bd346..5cb7143 100644
--- a/usr/mgmt_ipc.c
+++ b/usr/mgmt_ipc.c
@@ -226,6 +226,16 @@ mgmt_ipc_immediate_stop(queue_task_t *qtask)
}
static int
+mgmt_ipc_newroot(queue_task_t *qtask)
+{
+ char *newroot = qtask->req.u.newroot.path;
+ if (chdir(newroot) || chroot(".") || chdir("/"))
+ return ISCSI_ERR;
+ mgmt_ipc_write_rsp(qtask, ISCSI_SUCCESS);
+ return ISCSI_SUCCESS;
+}
+
+static int
mgmt_ipc_conn_remove(queue_task_t *qtask)
{
return ISCSI_ERR;
@@ -534,6 +544,7 @@ static mgmt_ipc_fn_t * mgmt_ipc_functions[__MGMT_IPC_MAX_COMMAND] = {
[MGMT_IPC_NOTIFY_DEL_NODE] = mgmt_ipc_notify_del_node,
[MGMT_IPC_NOTIFY_ADD_PORTAL] = mgmt_ipc_notify_add_portal,
[MGMT_IPC_NOTIFY_DEL_PORTAL] = mgmt_ipc_notify_del_portal,
+[MGMT_IPC_NEWROOT] = mgmt_ipc_newroot,
};
void mgmt_ipc_handle(int accept_fd)
diff --git a/usr/mgmt_ipc.h b/usr/mgmt_ipc.h
index 55972ed..102ffff 100644
--- a/usr/mgmt_ipc.h
+++ b/usr/mgmt_ipc.h
@@ -22,6 +22,7 @@
#include "types.h"
#include "iscsi_if.h"
#include "config.h"
+#include "limits.h"
#define ISCSIADM_NAMESPACE "ISCSIADM_ABSTRACT_NAMESPACE"
#define PEERUSER_MAX 64
@@ -46,6 +47,7 @@ typedef enum iscsiadm_cmd {
MGMT_IPC_NOTIFY_DEL_NODE = 17,
MGMT_IPC_NOTIFY_ADD_PORTAL = 18,
MGMT_IPC_NOTIFY_DEL_PORTAL = 19,
+ MGMT_IPC_NEWROOT = 20,
__MGMT_IPC_MAX_COMMAND
} iscsiadm_cmd_e;
@@ -75,8 +77,10 @@ typedef struct iscsiadm_req {
int param;
/* TODO: make this variable len to support */
char value[IFNAMSIZ + 1];
-
} set_host_param;
+ struct ipc_msg_newroot {
+ char path[PATH_MAX + 1];
+ } newroot;
} u;
} iscsiadm_req_t;
--
1.7.11.7

View File

@ -0,0 +1,337 @@
From a41a27cd9b910191a616706c4f473259909bc45d Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Tue, 18 Dec 2012 11:27:00 -0800
Subject: iscsiadm: --param parsing for advanced node creation
Share parse_param and apply_param code from iscsistart, allow using multiple
--param options to set arbitrary fields in node mode.
Signed-off-by: Chris Leech <cleech@redhat.com>
---
usr/Makefile | 2 +-
usr/iscsi_param.c | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
usr/iscsi_param.h | 7 ++++
usr/iscsiadm.c | 16 ++++++++--
usr/iscsistart.c | 91 ++--------------------------------------------------
5 files changed, 120 insertions(+), 91 deletions(-)
create mode 100644 usr/iscsi_param.c
create mode 100644 usr/iscsi_param.h
diff --git a/usr/Makefile b/usr/Makefile
index 673b7f1..1506111 100644
--- a/usr/Makefile
+++ b/usr/Makefile
@@ -40,7 +40,7 @@ SYSDEPS_SRCS = $(wildcard ../utils/sysdeps/*.o)
ISCSI_LIB_SRCS = iscsi_util.o io.o auth.o iscsi_timer.o login.o log.o md5.o \
sha1.o iface.o idbm.o sysfs.o host.o session_info.o iscsi_sysfs.o \
iscsi_net_util.o iscsid_req.o transport.o iser.o cxgbi.o be2iscsi.o \
- initiator_common.o iscsi_err.o $(IPC_OBJ) $(SYSDEPS_SRCS)
+ initiator_common.o iscsi_err.o iscsi_param.o $(IPC_OBJ) $(SYSDEPS_SRCS)
# core initiator files
INITIATOR_SRCS = initiator.o scsi.o actor.o event_poll.o mgmt_ipc.o kern_err_table.o
diff --git a/usr/iscsi_param.c b/usr/iscsi_param.c
new file mode 100644
index 0000000..c075e8f
--- /dev/null
+++ b/usr/iscsi_param.c
@@ -0,0 +1,95 @@
+#include <string.h>
+#include "log.h"
+#include "config.h"
+#include "idbm.h"
+#include "list.h"
+#include "iface.h"
+#include "idbm_fields.h"
+#include "iscsi_err.h"
+
+int apply_params(struct list_head *user_params, struct node_rec *rec)
+{
+ struct user_param *param;
+ int rc;
+
+ /* Must init this so we can check if user overrode them */
+ rec->session.initial_login_retry_max = -1;
+ rec->conn[0].timeo.noop_out_interval = -1;
+ rec->conn[0].timeo.noop_out_timeout = -1;
+
+ list_for_each_entry(param, user_params, list) {
+ /*
+ * user may not have passed in all params that were set by
+ * ibft/iscsi_boot, so clear out values that might conflict
+ * with user overrides
+ */
+ if (!strcmp(param->name, IFACE_NETNAME)) {
+ /* overriding netname so MAC will be for old netdev */
+ memset(rec->iface.hwaddress, 0,
+ sizeof(rec->iface.hwaddress));
+ } else if (!strcmp(param->name, IFACE_HWADDR)) {
+ /* overriding MAC so netdev will be for old MAC */
+ memset(rec->iface.netdev, 0, sizeof(rec->iface.netdev));
+ } else if (!strcmp(param->name, IFACE_TRANSPORTNAME)) {
+ /*
+ * switching drivers so all old binding info is no
+ * longer valid. Old values were either for offload
+ * and we are switching to software or the reverse,
+ * or switching types of cards (bnx2i to cxgb3i).
+ */
+ memset(&rec->iface, 0, sizeof(rec->iface));
+ iface_setup_defaults(&rec->iface);
+ }
+ }
+
+ rc = idbm_node_set_rec_from_param(user_params, rec, 0);
+ if (rc)
+ return rc;
+
+ /*
+ * For root boot we could not change this in older versions so
+ * if user did not override then use the defaults.
+ *
+ * Increase to account for boot using static setup.
+ */
+ if (rec->session.initial_login_retry_max == -1)
+ rec->session.initial_login_retry_max = 30;
+ /* we used to not be able to answer so turn off */
+ if (rec->conn[0].timeo.noop_out_interval == -1)
+ rec->conn[0].timeo.noop_out_interval = 0;
+ if (rec->conn[0].timeo.noop_out_timeout == -1)
+ rec->conn[0].timeo.noop_out_timeout = 0;
+
+ return 0;
+}
+
+int parse_param(struct list_head *user_params, char *param_str)
+{
+ struct user_param *param;
+ char *name, *value;
+
+ name = param_str;
+
+ value = strchr(param_str, '=');
+ if (!value) {
+ log_error("Invalid --param %s. Missing value.", param_str);
+ return ISCSI_ERR_INVAL;
+ }
+ *value = '\0';
+
+ value++;
+ if (!strlen(value)) {
+ log_error("Invalid --param %s. Missing value.", param_str);
+ return ISCSI_ERR_INVAL;
+ }
+
+ param = idbm_alloc_user_param(name, value);
+ if (!param) {
+ log_error("Could not allocate memory for param.");
+ return ISCSI_ERR_NOMEM;
+ }
+
+ list_add(&param->list, user_params);
+ return 0;
+}
+
diff --git a/usr/iscsi_param.h b/usr/iscsi_param.h
new file mode 100644
index 0000000..8b7956c
--- /dev/null
+++ b/usr/iscsi_param.h
@@ -0,0 +1,7 @@
+#ifndef ISCSI_PARAM_H
+#define ISCSI_PARAM_H
+
+extern int parse_param(struct list_head *user_params, char *param_str);
+extern int apply_params(struct list_head *user_params, struct node_rec *rec);
+
+#endif
diff --git a/usr/iscsiadm.c b/usr/iscsiadm.c
index 323d0a8..ef866ae 100644
--- a/usr/iscsiadm.c
+++ b/usr/iscsiadm.c
@@ -53,6 +53,7 @@
#include "iscsi_err.h"
#include "iscsi_ipc.h"
#include "iscsi_timer.h"
+#include "iscsi_param.h"
static char program_name[] = "iscsiadm";
static char config_file[TARGET_NAME_MAXLEN];
@@ -112,6 +113,7 @@ static struct option const long_options[] =
{"count", required_argument, NULL, 'c'},
{"interval", required_argument, NULL, 'i'},
{"newroot", required_argument, NULL, 0},
+ {"param", required_argument, NULL, 0},
{NULL, 0, NULL, 0},
};
static char *short_options = "RlDVhm:a:b:c:C:p:P:T:H:i:I:U:k:L:d:r:n:v:o:sSt:u";
@@ -127,7 +129,7 @@ iscsiadm -m discoverydb [ -hV ] [ -d debug_level ] [-P printlevel] [ -t type -p
[ -o operation ] [ -n name ] [ -v value ] [ -lD ] ] \n\
iscsiadm -m discovery [ -hV ] [ -d debug_level ] [-P printlevel] [ -t type -p ip:port -I ifaceN ... [ -l ] ] | [ [ -p ip:port ] [ -l | -D ] ] \n\
iscsiadm -m node [ -hV ] [ -d debug_level ] [ -P printlevel ] [ -L all,manual,automatic ] [ -U all,manual,automatic ] [ -S ] [ [ -T targetname -p ip:port -I ifaceN ] [ -l | -u | -R | -s] ] \
-[ [ -o operation ] [ -n name ] [ -v value ] ]\n\
+[ [ -o operation ] [ -n name ] [ -v value ] ] [ --param=NAME=VALUE ]\n\
iscsiadm -m session [ -hV ] [ -d debug_level ] [ -P printlevel] [ -r sessionid | sysfsdir [ -R | -u | -s ] [ -o operation ] [ -n name ] [ -v value ] ]\n\
iscsiadm -m iface [ -hV ] [ -d debug_level ] [ -P printlevel ] [ -I ifacename | -H hostno|MAC ] [ [ -o operation ] [ -n name ] [ -v value ] ] [ -C ping [ -a ip ] [ -b packetsize ] [ -c count ] [ -i interval ] ]\n\
iscsiadm -m fw [ -l ]\n\
@@ -2430,9 +2432,11 @@ main(int argc, char **argv)
uint32_t host_no = -1;
struct user_param *param;
struct list_head params;
+ struct list_head user_params;
INIT_LIST_HEAD(&params);
INIT_LIST_HEAD(&ifaces);
+ INIT_LIST_HEAD(&user_params);
/* do not allow ctrl-c for now... */
memset(&sa_old, 0, sizeof(struct sigaction));
memset(&sa_new, 0, sizeof(struct sigaction));
@@ -2455,8 +2459,14 @@ main(int argc, char **argv)
case 0:
if (long_options[longindex].flag != 0)
break;
- if (!strcmp(long_options[longindex].name, "newroot"))
+ if (!strcmp(long_options[longindex].name, "newroot")) {
newroot = optarg;
+ break;
+ }
+ if (!strcmp(long_options[longindex].name, "param")) {
+ parse_param(&user_params, optarg);
+ break;
+ }
break;
case 'k':
killiscsid = atoi(optarg);
@@ -2748,6 +2758,8 @@ main(int argc, char **argv)
goto out;
}
+ apply_params(&user_params, rec);
+
rc = exec_node_op(op, do_login, do_logout, do_show,
do_rescan, do_stats, info_level, rec,
&params);
diff --git a/usr/iscsistart.c b/usr/iscsistart.c
index 6924d49..85be35b 100644
--- a/usr/iscsistart.c
+++ b/usr/iscsistart.c
@@ -50,6 +50,7 @@
#include "iscsid_req.h"
#include "iscsi_err.h"
#include "iface.h"
+#include "iscsi_param.h"
/* global config info */
/* initiator needs initiator name/alias */
@@ -131,99 +132,13 @@ static int stop_event_loop(void)
return rc;
}
-static int apply_params(struct node_rec *rec)
-{
- struct user_param *param;
- int rc;
-
- /* Must init this so we can check if user overrode them */
- rec->session.initial_login_retry_max = -1;
- rec->conn[0].timeo.noop_out_interval = -1;
- rec->conn[0].timeo.noop_out_timeout = -1;
-
- list_for_each_entry(param, &user_params, list) {
- /*
- * user may not have passed in all params that were set by
- * ibft/iscsi_boot, so clear out values that might conflict
- * with user overrides
- */
- if (!strcmp(param->name, IFACE_NETNAME)) {
- /* overriding netname so MAC will be for old netdev */
- memset(rec->iface.hwaddress, 0,
- sizeof(rec->iface.hwaddress));
- } else if (!strcmp(param->name, IFACE_HWADDR)) {
- /* overriding MAC so netdev will be for old MAC */
- memset(rec->iface.netdev, 0, sizeof(rec->iface.netdev));
- } else if (!strcmp(param->name, IFACE_TRANSPORTNAME)) {
- /*
- * switching drivers so all old binding info is no
- * longer valid. Old values were either for offload
- * and we are switching to software or the reverse,
- * or switching types of cards (bnx2i to cxgb3i).
- */
- memset(&rec->iface, 0, sizeof(rec->iface));
- iface_setup_defaults(&rec->iface);
- }
- }
-
- rc = idbm_node_set_rec_from_param(&user_params, rec, 0);
- if (rc)
- return rc;
-
- /*
- * For root boot we could not change this in older versions so
- * if user did not override then use the defaults.
- *
- * Increase to account for boot using static setup.
- */
- if (rec->session.initial_login_retry_max == -1)
- rec->session.initial_login_retry_max = 30;
- /* we used to not be able to answer so turn off */
- if (rec->conn[0].timeo.noop_out_interval == -1)
- rec->conn[0].timeo.noop_out_interval = 0;
- if (rec->conn[0].timeo.noop_out_timeout == -1)
- rec->conn[0].timeo.noop_out_timeout = 0;
-
- return 0;
-}
-
-static int parse_param(char *param_str)
-{
- struct user_param *param;
- char *name, *value;
-
- name = param_str;
-
- value = strchr(param_str, '=');
- if (!value) {
- log_error("Invalid --param %s. Missing value.", param_str);
- return ISCSI_ERR_INVAL;
- }
- *value = '\0';
-
- value++;
- if (!strlen(value)) {
- log_error("Invalid --param %s. Missing value.", param_str);
- return ISCSI_ERR_INVAL;
- }
-
- param = idbm_alloc_user_param(name, value);
- if (!param) {
- log_error("Could not allocate memory for param.");
- return ISCSI_ERR_NOMEM;
- }
-
- list_add(&param->list, &user_params);
- return 0;
-}
-
static int login_session(struct node_rec *rec)
{
iscsiadm_req_t req;
iscsiadm_rsp_t rsp;
int rc, retries = 0;
- rc = apply_params(rec);
+ rc = apply_params(&user_params, rec);
if (rc)
return rc;
@@ -426,7 +341,7 @@ int main(int argc, char *argv[])
fw_free_targets(&targets);
exit(0);
case 'P':
- err = parse_param(optarg);
+ err = parse_param(&user_params, optarg);
if (err)
exit(err);
break;
--
1.7.11.7

View File

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

View File

@ -1,4 +1,4 @@
From 9e68a86626e9085af1d7a457bf28d2347c0d9356 Mon Sep 17 00:00:00 2001 From c255c2cd43afeaefa428237a3200f02fb238d89e Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com> From: Chris Leech <cleech@redhat.com>
Date: Mon, 19 Nov 2012 16:37:13 -0800 Date: Mon, 19 Nov 2012 16:37:13 -0800
Subject: update initscripts and docs Subject: update initscripts and docs

View File

@ -1,4 +1,4 @@
From d77d9e1ffb1775c3602d8cc9ae56c701aa7c476a Mon Sep 17 00:00:00 2001 From aaf2b26eae472e5fd596f9bd23f9bf5886b1eb98 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com> From: Chris Leech <cleech@redhat.com>
Date: Mon, 19 Nov 2012 16:38:45 -0800 Date: Mon, 19 Nov 2012 16:38:45 -0800
Subject: use var for config Subject: use var for config

View File

@ -1,4 +1,4 @@
From 88d864140cacdc1727091ee0ce61fcbd90cae472 Mon Sep 17 00:00:00 2001 From bf7f9118ab2f1a5302dafa198d3351f6f977b7bd Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com> From: Chris Leech <cleech@redhat.com>
Date: Mon, 19 Nov 2012 16:40:04 -0800 Date: Mon, 19 Nov 2012 16:40:04 -0800
Subject: use red hat for name Subject: use red hat for name

View File

@ -1,4 +1,4 @@
From 8f94617e1b332031b01a0363a6757bfb5a039d89 Mon Sep 17 00:00:00 2001 From ce1f29f2049320af18eeffd3aefccf840c442ce0 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com> From: Chris Leech <cleech@redhat.com>
Date: Mon, 19 Nov 2012 16:43:15 -0800 Date: Mon, 19 Nov 2012 16:43:15 -0800
Subject: add libiscsi Subject: add libiscsi

View File

@ -1,4 +1,4 @@
From 82f3ef30850bb433725b60927969721bcca1df79 Mon Sep 17 00:00:00 2001 From ff224a16d409c4b479b3ac1ff662093cb067e281 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com> From: Chris Leech <cleech@redhat.com>
Date: Mon, 19 Nov 2012 17:04:29 -0800 Date: Mon, 19 Nov 2012 17:04:29 -0800
Subject: dont use static Subject: dont use static

View File

@ -1,4 +1,4 @@
From 55c5640e2571b3e4b8a1b33f0076971b5c865711 Mon Sep 17 00:00:00 2001 From aa58a042ec20575143c1a5c813c9552a286aeb0e Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com> From: Chris Leech <cleech@redhat.com>
Date: Mon, 19 Nov 2012 17:09:24 -0800 Date: Mon, 19 Nov 2012 17:09:24 -0800
Subject: remove the offload boot supported ifdef Subject: remove the offload boot supported ifdef

View File

@ -1,4 +1,4 @@
From 5753a2f838fcb532ad56dc4c4657b36cdea88bba Mon Sep 17 00:00:00 2001 From 59b5b828b2a763f47fb205aedf202990d64e748c Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com> From: Chris Leech <cleech@redhat.com>
Date: Mon, 24 Dec 2012 13:37:53 -0800 Date: Mon, 24 Dec 2012 13:37:53 -0800
Subject: iscsid iscsiuio ipc interface Subject: iscsid iscsiuio ipc interface
@ -41,8 +41,8 @@ index 1669890..5bf5f83 100644
ISCSI_LIB_SRCS = iscsi_util.o io.o auth.o iscsi_timer.o login.o log.o md5.o \ ISCSI_LIB_SRCS = iscsi_util.o io.o auth.o iscsi_timer.o login.o log.o md5.o \
sha1.o iface.o idbm.o sysfs.o host.o session_info.o iscsi_sysfs.o \ sha1.o iface.o idbm.o sysfs.o host.o session_info.o iscsi_sysfs.o \
iscsi_net_util.o iscsid_req.o transport.o iser.o cxgbi.o be2iscsi.o \ iscsi_net_util.o iscsid_req.o transport.o iser.o cxgbi.o be2iscsi.o \
- initiator_common.o iscsi_err.o $(IPC_OBJ) $(SYSDEPS_SRCS) - initiator_common.o iscsi_err.o iscsi_param.o $(IPC_OBJ) $(SYSDEPS_SRCS)
+ initiator_common.o iscsi_err.o uip_mgmt_ipc.o \ + initiator_common.o iscsi_err.o iscsi_param.o uip_mgmt_ipc.o \
+ $(IPC_OBJ) $(SYSDEPS_SRCS) + $(IPC_OBJ) $(SYSDEPS_SRCS)
# core initiator files # core initiator files
INITIATOR_SRCS = initiator.o scsi.o actor.o event_poll.o mgmt_ipc.o kern_err_table.o INITIATOR_SRCS = initiator.o scsi.o actor.o event_poll.o mgmt_ipc.o kern_err_table.o

View File

@ -0,0 +1,122 @@
From e74f511ba862195d909bba90091fd84bd7904914 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Wed, 2 Jan 2013 14:45:05 -0800
Subject: iscsiuio IPC newroot command
---
usr/mgmt_ipc.c | 11 +++++++++++
usr/transport.c | 1 +
usr/transport.h | 1 +
usr/uip_mgmt_ipc.c | 14 ++++++++++++++
usr/uip_mgmt_ipc.h | 5 +++++
5 files changed, 32 insertions(+)
diff --git a/usr/mgmt_ipc.c b/usr/mgmt_ipc.c
index 5cb7143..a8f8473 100644
--- a/usr/mgmt_ipc.c
+++ b/usr/mgmt_ipc.c
@@ -36,6 +36,7 @@
#include "sysdeps.h"
#include "iscsi_ipc.h"
#include "iscsi_err.h"
+#include "iscsi_sysfs.h"
#define PEERUSER_MAX 64
#define EXTMSG_MAX (64 * 1024)
@@ -229,8 +230,18 @@ static int
mgmt_ipc_newroot(queue_task_t *qtask)
{
char *newroot = qtask->req.u.newroot.path;
+ struct iscsi_transport *t;
+
if (chdir(newroot) || chroot(".") || chdir("/"))
return ISCSI_ERR;
+
+ /* if a registered transport has a separate userspace process,
+ * notify it of the root change as well */
+ list_for_each_entry(t, &transports, list) {
+ if (t->template->newroot)
+ t->template->newroot(t, newroot);
+ }
+
mgmt_ipc_write_rsp(qtask, ISCSI_SUCCESS);
return ISCSI_SUCCESS;
}
diff --git a/usr/transport.c b/usr/transport.c
index 10212af..02ad717 100644
--- a/usr/transport.c
+++ b/usr/transport.c
@@ -81,6 +81,7 @@ struct iscsi_transport_template bnx2i = {
.ep_poll = ktransport_ep_poll,
.ep_disconnect = ktransport_ep_disconnect,
.set_net_config = uip_broadcast_params,
+ .newroot = uip_broadcast_newroot,
};
struct iscsi_transport_template be2iscsi = {
diff --git a/usr/transport.h b/usr/transport.h
index 5dcf872..eb3a946 100644
--- a/usr/transport.h
+++ b/usr/transport.h
@@ -38,6 +38,7 @@ struct iscsi_transport_template {
int (*set_net_config) (struct iscsi_transport *t,
struct iface_rec *iface,
struct iscsi_session *session);
+ void (*newroot) (struct iscsi_transport *t, char *path);
};
/* represents data path provider */
diff --git a/usr/uip_mgmt_ipc.c b/usr/uip_mgmt_ipc.c
index 73b1632..9fa5398 100644
--- a/usr/uip_mgmt_ipc.c
+++ b/usr/uip_mgmt_ipc.c
@@ -39,3 +39,17 @@ int uip_broadcast_params(struct iscsi_transport *t,
sizeof(iscsid_uip_broadcast_header_t) +
sizeof(*iface));
}
+
+int uip_broadcast_newroot(struct iscsi_transport *t, char *newroot)
+{
+ struct iscsid_uip_broadcast broadcast;
+
+ memset(&broadcast, 0, sizeof(broadcast));
+
+ broadcast.header.command = ISCSID_UIP_NEWROOT;
+ strncpy(broadcast.u.newroot.path, newroot, PATH_MAX);
+
+ return uip_broadcast(&broadcast,
+ sizeof(iscsid_uip_broadcast_header_t) +
+ PATH_MAX + 1);
+}
diff --git a/usr/uip_mgmt_ipc.h b/usr/uip_mgmt_ipc.h
index 3859688..9de88c2 100644
--- a/usr/uip_mgmt_ipc.h
+++ b/usr/uip_mgmt_ipc.h
@@ -29,6 +29,7 @@
typedef enum iscsid_uip_cmd {
ISCSID_UIP_IPC_UNKNOWN = 0,
ISCSID_UIP_IPC_GET_IFACE = 1,
+ ISCSID_UIP_NEWROOT = 2,
__ISCSID_UIP_IPC_MAX_COMMAND
} iscsid_uip_cmd_e;
@@ -47,6 +48,9 @@ typedef struct iscsid_uip_broadcast {
struct ipc_broadcast_iface_rec {
struct iface_rec rec;
} iface_rec;
+ struct ipc_broadcast_newroot {
+ char path[PATH_MAX + 1];
+ } newroot;
} u;
} iscsid_uip_broadcast_t;
@@ -69,5 +73,6 @@ extern int uip_broadcast_params(struct iscsi_transport *t,
struct iface_rec *iface,
struct iscsi_session *session);
+extern int uip_broadcast_newroot(struct iscsi_transport *t, char *path);
#endif /* UIP_MGMT_IPC_H */
--
1.7.11.7

View File

@ -0,0 +1,53 @@
From 822b53e6c9ebb0fe7236ebd3b4c73b009100592d Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Tue, 22 Jan 2013 14:27:12 -0800
Subject: iscsiuio systemd unit files
---
etc/systemd/iscsiuio.service | 17 +++++++++++++++++
etc/systemd/iscsiuio.socket | 9 +++++++++
2 files changed, 26 insertions(+)
create mode 100644 etc/systemd/iscsiuio.service
create mode 100644 etc/systemd/iscsiuio.socket
diff --git a/etc/systemd/iscsiuio.service b/etc/systemd/iscsiuio.service
new file mode 100644
index 0000000..f0410b7
--- /dev/null
+++ b/etc/systemd/iscsiuio.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=iSCSI UserSpace I/O driver
+Documentation=man:iscsiuio(8)
+DefaultDependencies=no
+Conflicts=shutdown.target
+Requires=iscsid.service
+BindTo=iscsid.service
+After=network.target
+Before=remote-fs-pre.target iscsid.service
+
+[Service]
+Type=forking
+PIDFile=/var/run/iscsiuio.pid
+ExecStart=/usr/sbin/iscsiuio
+
+[Install]
+WantedBy=multi-user.target
diff --git a/etc/systemd/iscsiuio.socket b/etc/systemd/iscsiuio.socket
new file mode 100644
index 0000000..d42cedc
--- /dev/null
+++ b/etc/systemd/iscsiuio.socket
@@ -0,0 +1,9 @@
+[Unit]
+Description=Open-iSCSI iscsiuio Socket
+Documentation=man:iscsiuio(8)
+
+[Socket]
+ListenStream=@ISCSID_UIP_ABSTRACT_NAMESPACE
+
+[Install]
+WantedBy=sockets.target
--
1.7.11.7

View File

@ -0,0 +1,31 @@
From bff9048411c891d2eafab1e588077e4bfa56cb43 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Wed, 19 Dec 2012 21:32:44 -0800
Subject: iscsiuio fix long options
---
src/unix/main.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/unix/main.c b/src/unix/main.c
index 2008913..ef9e069 100644
--- a/src/unix/main.c
+++ b/src/unix/main.c
@@ -83,9 +83,11 @@ static char default_pid_filepath[] = "/var/run/iscsiuio.pid";
* Global Variables
******************************************************************************/
static const struct option long_options[] = {
- {"debug", 0, 0, 0},
- {"version", 0, 0, 0},
- {"help", 0, 0, 0},
+ {"foreground", no_argument, NULL, 'f'},
+ {"debug", required_argument, NULL, 'd'},
+ {"pid", required_argument, NULL, 'p'},
+ {"version", no_argument, NULL, 'v'},
+ {"help", no_argument, NULL, 'h'},
{0, 0, 0, 0}
};
--
1.7.11.7

View File

@ -0,0 +1,51 @@
From fefc8e39129dbdeadf2a0b6ba7a28e9e47597e11 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Wed, 19 Dec 2012 21:37:18 -0800
Subject: iscsiuio add --initrd option to set run from initrd hint for systemd
See http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons
---
src/unix/main.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/unix/main.c b/src/unix/main.c
index ef9e069..c5fb5ab 100644
--- a/src/unix/main.c
+++ b/src/unix/main.c
@@ -82,12 +82,15 @@ static char default_pid_filepath[] = "/var/run/iscsiuio.pid";
/*******************************************************************************
* Global Variables
******************************************************************************/
+static int initrd = 0;
+
static const struct option long_options[] = {
{"foreground", no_argument, NULL, 'f'},
{"debug", required_argument, NULL, 'd'},
{"pid", required_argument, NULL, 'p'},
{"version", no_argument, NULL, 'v'},
{"help", no_argument, NULL, 'h'},
+ {"initrd", no_argument, &initrd, 1},
{0, 0, 0, 0}
};
@@ -176,6 +179,7 @@ iscsiuio daemon.\n\
-f, --foreground make the program run in the foreground\n\
-d, --debug debuglevel print debugging information\n\
-p, --pid=pidfile use pid file (default %s).\n\
+ --initrd systemd initrd hint\n\
-h, --help display this help and exit\n\
-v, --version display version and exit\n\
", default_pid_filepath);
@@ -279,6 +283,9 @@ int main(int argc, char *argv[])
}
}
+ if (initrd)
+ argv[0][0] = '@';
+
if (main_log.enabled == LOGGER_ENABLED) {
/* initialize the logger */
rc = init_logger(main_log.log_file);
--
1.7.11.7

View File

@ -0,0 +1,58 @@
From b923362bb847eab5856fa3593f053e670d90e0fd Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Wed, 19 Dec 2012 21:39:06 -0800
Subject: iscsiuio systemd socket activation support
---
src/unix/iscsid_ipc.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/src/unix/iscsid_ipc.c b/src/unix/iscsid_ipc.c
index d7372fc..1c28822 100644
--- a/src/unix/iscsid_ipc.c
+++ b/src/unix/iscsid_ipc.c
@@ -948,6 +948,30 @@ static void *iscsid_loop(void *arg)
pthread_exit(NULL);
}
+#define SD_SOCKET_FDS_START 3
+
+static int ipc_systemd(void)
+{
+ char *env;
+
+ env = getenv("LISTEN_PID");
+
+ if (!env || (strtoul(env, NULL, 10) != getpid()))
+ return -EINVAL;
+
+ env = getenv("LISTEN_FDS");
+
+ if (!env)
+ return -EINVAL;
+
+ if (strtoul(env, NULL, 10) != 1) {
+ LOG_ERR("Did not receive exactly one IPC socket from systemd");
+ return -EINVAL;
+ }
+
+ return SD_SOCKET_FDS_START;
+}
+
/******************************************************************************
* Initialize/Cleanup routines
******************************************************************************/
@@ -961,6 +985,10 @@ int iscsid_init()
int rc;
struct sockaddr_un addr;
+ iscsid_opts.fd = ipc_systemd();
+ if (iscsid_opts.fd >= 0)
+ return 0;
+
iscsid_opts.fd = socket(AF_LOCAL, SOCK_STREAM, 0);
if (iscsid_opts.fd < 0) {
LOG_ERR(PFX "Can not create IPC socket");
--
1.7.11.7

View File

@ -0,0 +1,62 @@
From 07bf3074ccdd9debe844fe1bae0244799d01fe58 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Wed, 2 Jan 2013 14:46:14 -0800
Subject: iscsiuio: iscsid IPC newroot command
---
include/uip_mgmt_ipc.h | 4 ++++
src/unix/iscsid_ipc.c | 9 +++++++++
2 files changed, 13 insertions(+)
diff --git a/include/uip_mgmt_ipc.h b/include/uip_mgmt_ipc.h
index 7054df5..db87b2b 100644
--- a/include/uip_mgmt_ipc.h
+++ b/include/uip_mgmt_ipc.h
@@ -26,6 +26,7 @@
typedef enum iscsid_uip_cmd {
ISCSID_UIP_IPC_UNKNOWN = 0,
ISCSID_UIP_IPC_GET_IFACE = 1,
+ ISCSID_UIP_NEWROOT = 2,
__ISCSID_UIP_IPC_MAX_COMMAND
} iscsid_uip_cmd_e;
@@ -45,6 +46,9 @@ typedef struct iscsid_uip_broadcast {
struct ipc_broadcast_iface_rec {
struct iface_rec rec;
} iface_rec;
+ struct ipc_broadcast_newroot {
+ char path[PATH_MAX + 1];
+ } newroot;
} u;
} iscsid_uip_broadcast_t;
diff --git a/src/unix/iscsid_ipc.c b/src/unix/iscsid_ipc.c
index 1c28822..dcbeb4c 100644
--- a/src/unix/iscsid_ipc.c
+++ b/src/unix/iscsid_ipc.c
@@ -801,6 +801,7 @@ int process_iscsid_broadcast(int s2)
size_t size;
iscsid_uip_cmd_e cmd;
uint32_t payload_len;
+ char *newroot;
fd = fdopen(s2, "r+");
if (fd == NULL) {
@@ -857,6 +858,14 @@ int process_iscsid_broadcast(int s2)
}
break;
+ case ISCSID_UIP_NEWROOT:
+ rsp.command = cmd;
+ newroot = data->u.newroot.path;
+ if (chdir(newroot) || chroot(".") || chdir("/"))
+ rsp.err = ISCSID_UIP_MGMT_IPC_ERR;
+ else
+ rsp.err = ISCSID_UIP_MGMT_IPC_OK;
+ break;
default:
LOG_WARN(PFX "Unknown iscsid broadcast command: %x",
data->header.command);
--
1.7.11.7

View File

@ -0,0 +1,32 @@
From 1453c612ce34c6d3722e0d83b5e2def5048421dc Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Mon, 21 Jan 2013 15:49:02 -0800
Subject: iscsiuio document pidfile option
---
docs/iscsiuio.8 | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/docs/iscsiuio.8 b/docs/iscsiuio.8
index d107327..6d79108 100644
--- a/docs/iscsiuio.8
+++ b/docs/iscsiuio.8
@@ -67,6 +67,15 @@ into the background.
.TP
.BI -v
This is to print the version.
+.PP
+.TP
+.BI -p <pidfile>
+Use pidfile (default /var/run/iscsiuio.pid )
+.PP
+.TP
+.BI -h
+Display this help and exit.
+
.\"
.\" AUTHOR part
--
1.7.11.7

View File

@ -1,4 +1,4 @@
From 2c05e5731fdbe21c3a44f9c62963a838bf74ec5b Mon Sep 17 00:00:00 2001 From 1483a176fdbb22bbfecf06eea57d1aa200f30561 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com> From: Chris Leech <cleech@redhat.com>
Date: Mon, 21 Jan 2013 15:43:36 -0800 Date: Mon, 21 Jan 2013 15:43:36 -0800
Subject: use Red Hat version string to match RPM package version Subject: use Red Hat version string to match RPM package version

View File

@ -25,6 +25,11 @@ Patch7: 0007-iscsid-iscsiadm-fix-abstract-socket-length-in-bind-c.patch
Patch8: 0008-iscsid-implement-systemd-compatible-socket-activatio.patch Patch8: 0008-iscsid-implement-systemd-compatible-socket-activatio.patch
Patch9: 0009-iscsid-add-example-unit-files-for-systemd.patch Patch9: 0009-iscsid-add-example-unit-files-for-systemd.patch
Patch10: 0010-iscsi-tools-fix-get_random_bytes-error-handling.patch Patch10: 0010-iscsi-tools-fix-get_random_bytes-error-handling.patch
# pending upstream merge
Patch31: 0031-iscsid-add-initrd-option-to-set-run-from-initrd-hint.patch
Patch32: 0032-iscsiadm-iscsid-newroot-command-to-survive-switch_ro.patch
Patch33: 0033-iscsiadm-param-parsing-for-advanced-node-creation.patch
Patch34: 0034-update-systemd-service-files-add-iscsi.service-for-s.patch
# distro specific modifications # distro specific modifications
Patch51: 0051-update-initscripts-and-docs.patch Patch51: 0051-update-initscripts-and-docs.patch
Patch52: 0052-use-var-for-config.patch Patch52: 0052-use-var-for-config.patch
@ -33,9 +38,16 @@ Patch54: 0054-add-libiscsi.patch
Patch55: 0055-dont-use-static.patch Patch55: 0055-dont-use-static.patch
Patch56: 0056-remove-the-offload-boot-supported-ifdef.patch Patch56: 0056-remove-the-offload-boot-supported-ifdef.patch
Patch57: 0057-iscsid-iscsiuio-ipc-interface.patch Patch57: 0057-iscsid-iscsiuio-ipc-interface.patch
Patch58: 0058-iscsiuio-IPC-newroot-command.patch
Patch59: 0059-iscsiuio-systemd-unit-files.patch
# iscsiuio patches # iscsiuio patches
Patch71: 0071-iscsiuio-0.7.4.3.patch Patch71: 0071-iscsiuio-0.7.4.3.patch
Patch72: 0072-iscsiuio-0.7.6.1.patch Patch72: 0072-iscsiuio-0.7.6.1.patch
Patch73: 0073-iscsiuio-fix-long-options.patch
Patch74: 0074-iscsiuio-add-initrd-option-to-set-run-from-initrd-hi.patch
Patch75: 0075-iscsiuio-systemd-socket-activation-support.patch
Patch76: 0076-iscsiuio-iscsid-IPC-newroot-command.patch
Patch77: 0077-iscsiuio-document-pidfile-option.patch
# version string, needs to be updated with each build # version string, needs to be updated with each build
Patch99: 0099-use-Red-Hat-version-string-to-match-RPM-package-vers.patch Patch99: 0099-use-Red-Hat-version-string-to-match-RPM-package-vers.patch
@ -79,6 +91,11 @@ mv iscsiuio-%{iscsiuio_version} iscsiuio
%patch8 -p1 %patch8 -p1
%patch9 -p1 %patch9 -p1
%patch10 -p1 %patch10 -p1
# pending upstream merge
%patch31 -p1
%patch32 -p1
%patch33 -p1
%patch34 -p1
# distro specific modifications # distro specific modifications
%patch51 -p1 %patch51 -p1
%patch52 -p1 %patch52 -p1
@ -87,10 +104,17 @@ mv iscsiuio-%{iscsiuio_version} iscsiuio
%patch55 -p1 %patch55 -p1
%patch56 -p1 %patch56 -p1
%patch57 -p1 %patch57 -p1
%patch58 -p1
%patch59 -p1
# iscsiuio patches # iscsiuio patches
cd iscsiuio cd iscsiuio
%patch71 -p1 %patch71 -p1
%patch72 -p1 %patch72 -p1
%patch73 -p1
%patch74 -p1
%patch75 -p1
%patch76 -p1
%patch77 -p1
cd .. cd ..
# version string # version string
%patch99 -p1 %patch99 -p1