diff --git a/iscsi-initiator-utils-disable-dsa-code.patch b/iscsi-initiator-utils-disable-dsa-code.patch
deleted file mode 100644
index ee21a03..0000000
--- a/iscsi-initiator-utils-disable-dsa-code.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-diff -aurp open-iscsi-2.0-872-rc4-bnx2i/Makefile open-iscsi-2.0-872-rc4-bnx2i.work/Makefile
---- open-iscsi-2.0-872-rc4-bnx2i/Makefile	2011-01-31 21:01:06.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/Makefile	2011-01-31 21:01:22.000000000 -0600
-@@ -27,7 +27,7 @@ IFACEFILES = etc/iface.example
- all: user kernel
- 
- user: ;
--	cd utils/open-isns; ./configure; $(MAKE)
-+	cd utils/open-isns; ./configure --with-security=no; $(MAKE)
- 	$(MAKE) -C utils/sysdeps
- 	$(MAKE) -C utils/fwparam_ibft
- 	$(MAKE) -C usr
-diff -aurp open-iscsi-2.0-872-rc4-bnx2i/usr/Makefile open-iscsi-2.0-872-rc4-bnx2i.work/usr/Makefile
---- open-iscsi-2.0-872-rc4-bnx2i/usr/Makefile	2011-01-31 21:01:06.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/Makefile	2011-01-31 21:01:22.000000000 -0600
-@@ -54,10 +54,10 @@ all: $(PROGRAMS)
- 
- iscsid: $(ISCSI_LIB_SRCS) $(INITIATOR_SRCS) $(DISCOVERY_SRCS) \
- 	iscsid.o session_mgmt.o discoveryd.o
--	$(CC) $(CFLAGS) $^ -o $@ -L../utils/open-isns -lisns -lcrypto
-+	$(CC) $(CFLAGS) $^ -o $@ -L../utils/open-isns -lisns
- 
- iscsiadm: $(ISCSI_LIB_SRCS) $(DISCOVERY_SRCS) iscsiadm.o session_mgmt.o
--	$(CC) $(CFLAGS) $^ -o $@ -L../utils/open-isns -lisns -lcrypto
-+	$(CC) $(CFLAGS) $^ -o $@ -L../utils/open-isns -lisns
- 
- iscsistart: $(ISCSI_LIB_SRCS) $(INITIATOR_SRCS) $(FW_BOOT_SRCS) \
- 		iscsistart.o statics.o
-diff -aurp open-iscsi-2.0-872-rc4-bnx2i/utils/open-isns/Makefile.in open-iscsi-2.0-872-rc4-bnx2i.work/utils/open-isns/Makefile.in
---- open-iscsi-2.0-872-rc4-bnx2i/utils/open-isns/Makefile.in	2011-01-31 21:01:05.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/utils/open-isns/Makefile.in	2011-01-31 21:01:22.000000000 -0600
-@@ -32,7 +32,6 @@ LIBOBJS	= server.o \
- 	  security.o \
- 	  authblock.o \
- 	  policy.o \
--	  pki.o \
- 	  register.o \
- 	  query.o \
- 	  getnext.o \
diff --git a/iscsi-initiator-utils-fwparam_sysfs-fix-pathname-manipulation.patch b/iscsi-initiator-utils-fwparam_sysfs-fix-pathname-manipulation.patch
deleted file mode 100644
index 1f9f4f6..0000000
--- a/iscsi-initiator-utils-fwparam_sysfs-fix-pathname-manipulation.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From add2b9985e7d35c5f3320a3a13e8f90a05a06d82 Mon Sep 17 00:00:00 2001
-From: Ales Kozumplik <akozumpl@redhat.com>
-Date: Mon, 7 Feb 2011 17:00:33 +0100
-Subject: [PATCH 1/2] fwparam_sysfs: fix pathname manipulation error in fwparam_sysfs_boot_info.
-
-Related: rhbz#529443
----
- utils/fwparam_ibft/fwparam_sysfs.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/utils/fwparam_ibft/fwparam_sysfs.c b/utils/fwparam_ibft/fwparam_sysfs.c
-index b5568c5..3997363 100644
---- a/utils/fwparam_ibft/fwparam_sysfs.c
-+++ b/utils/fwparam_ibft/fwparam_sysfs.c
-@@ -365,7 +365,7 @@ int fwparam_sysfs_boot_info(struct boot_context *context)
- 		if (strncmp(dent->d_name, ISCSI_LLD_SUBSYS_PREFIX, 10))
- 			continue;
- 
--		snprintf(lld_root, FILENAMESZ, ISCSI_LLD_ROOT"%s",
-+		snprintf(lld_root, FILENAMESZ, ISCSI_LLD_ROOT"%s/",
- 			 dent->d_name);
- 		if (!get_boot_info(context, lld_root, dent->d_name))
- 			goto done;
--- 
-1.7.3.3
-
diff --git a/iscsi-initiator-utils-node-mode-hostname.patch b/iscsi-initiator-utils-node-mode-hostname.patch
deleted file mode 100644
index de8cca4..0000000
--- a/iscsi-initiator-utils-node-mode-hostname.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-diff -aurp open-iscsi-2.0-872-rc4-bnx2i/doc/iscsiadm.8 open-iscsi-2.0-872-rc4-bnx2i.work/doc/iscsiadm.8
---- open-iscsi-2.0-872-rc4-bnx2i/doc/iscsiadm.8	2011-02-01 02:10:05.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/doc/iscsiadm.8	2011-02-01 02:10:16.000000000 -0600
-@@ -171,8 +171,14 @@ sid is passed in.
- 
- .TP
- \fB\-p\fR, \fB\-\-portal=\fIip[:port]\fR
--Use target portal with ip-address \fIip\fR and \fIport\fR, the default
--\fIport\fR value is 3260.
-+Use target portal with ip-address \fIip\fR and \fIport\fR. If port is not passed
-+in the default \fIport\fR value is 3260.
-+.IP
-+IPv6 addresses can bs specified as [ddd.ddd.ddd.ddd]:port or
-+ddd.ddd.ddd.ddd.
-+.IP
-+Hostnames can also be used for the ip argument.
-+
- .IP
- This option is only valid for discovery, or for node operations with
- the \fInew\fR operator.
-diff -aurp open-iscsi-2.0-872-rc4-bnx2i/README open-iscsi-2.0-872-rc4-bnx2i.work/README
---- open-iscsi-2.0-872-rc4-bnx2i/README	2011-02-01 02:10:05.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/README	2011-02-01 02:11:37.000000000 -0600
-@@ -646,6 +646,9 @@ To now log into targets it is the same a
- 	If a record does not exist, it will be created using the iscsid.conf
- 	discovery settings.
- 
-+	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 /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
-@@ -770,6 +773,10 @@ To now log into targets it is the same a
- 	    ./iscsiadm -m node -T iqn.2005-03.com.max \
- 				-p [2001:c90::211:9ff:feb8:a9e9]:3260 -l
- 
-+	To specify a hostname the following can be used:
-+
-+	    ./iscsiadm -m node -T iqn.2005-03.com.max -p somehost -l
-+
-     - iSCSI Login to a specific portal through the NIC setup as iface0:
- 
- 	    ./iscsiadm -m node -T iqn.2005-03.com.max -p 192.168.0.4:3260 \
-diff -aurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_util.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_util.c
---- open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_util.c	2011-02-01 02:10:05.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_util.c	2011-02-01 02:10:16.000000000 -0600
-@@ -217,6 +217,64 @@ char *cfg_get_string_param(char *pathnam
- 	return value;
- }
- 
-+/**
-+ * iscsi_addr_match - check if the addrs are to the same ip
-+ * @address1: pattern
-+ * @address2: address to check
-+ *
-+ * If address1 is blank then it matches any string passed in.
-+ */
-+static int iscsi_addr_match(char *address1, char *address2)
-+{
-+	struct addrinfo hints1, hints2, *res1, *res2;
-+	int rc;
-+
-+	if (!strlen(address1))
-+		return 1;
-+
-+	if (!strcmp(address1, address2))
-+		return 1;
-+
-+	memset(&hints1, 0, sizeof(struct addrinfo));
-+	hints1.ai_family = AF_UNSPEC;
-+	hints1.ai_socktype = SOCK_STREAM;
-+
-+	memset(&hints2, 0, sizeof(struct addrinfo));
-+	hints2.ai_family = AF_UNSPEC;
-+	hints2.ai_socktype = SOCK_STREAM;
-+
-+	/*
-+	 * didn't match so we have to resolve to see if one is a dnsname
-+	 * that matches a ip address.
-+	 */
-+	rc = getaddrinfo(address1, NULL, &hints1, &res1);
-+	if (rc) {
-+		log_debug(1, "Match error. Could not resolve %s: %s", address1,
-+			  gai_strerror(rc));
-+		return 0;
-+
-+	}
-+
-+	rc = getaddrinfo(address2, NULL, &hints2, &res2);
-+	if (rc) {
-+		log_debug(1, "Match error. Could not resolve %s: %s", address2,
-+			  gai_strerror(rc));
-+		rc = 0;
-+		goto free_res1;
-+	}
-+
-+	if ((res1->ai_addrlen != res2->ai_addrlen) ||
-+	    memcmp(res1->ai_addr, res2->ai_addr, res2->ai_addrlen))
-+		rc = 0;
-+	else
-+		rc = 1;
-+
-+	freeaddrinfo(res2);
-+free_res1:
-+	freeaddrinfo(res1);
-+	return rc;
-+}
-+
- int __iscsi_match_session(node_rec_t *rec, char *targetname,
- 			  char *address, int port, struct iface_rec *iface)
- {
-@@ -240,8 +298,7 @@ int __iscsi_match_session(node_rec_t *re
- 	if (strlen(rec->name) && strcmp(rec->name, targetname))
- 		return 0;
- 
--	if (strlen(rec->conn[0].address) &&
--	    strcmp(rec->conn[0].address, address))
-+	if (!iscsi_addr_match(rec->conn[0].address, address))
- 		return 0;
- 
- 	if (rec->conn[0].port != -1 && port != rec->conn[0].port)
diff --git a/iscsi-initiator-utils-sync-iscsi.patch b/iscsi-initiator-utils-sync-iscsi.patch
index f2e3db3..23f027f 100644
--- a/iscsi-initiator-utils-sync-iscsi.patch
+++ b/iscsi-initiator-utils-sync-iscsi.patch
@@ -1,6 +1,6 @@
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/Changelog open-iscsi-2.0-872-rc4-bnx2i.work/Changelog
 --- open-iscsi-2.0-872-rc4-bnx2i/Changelog	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/Changelog	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/Changelog	2011-02-24 19:54:10.000000000 -0600
 @@ -1,132 +1,114 @@
 -open-iscsi-2.0-871 - open-iscsi-2.0.870
 +open-iscsi-2.0-872 - open-iscsi-2.0.871
@@ -245,7 +245,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/Changelog open-iscsi-2.0-872-rc4-bnx2i.
  
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/doc/iscsiadm.8 open-iscsi-2.0-872-rc4-bnx2i.work/doc/iscsiadm.8
 --- open-iscsi-2.0-872-rc4-bnx2i/doc/iscsiadm.8	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/doc/iscsiadm.8	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/doc/iscsiadm.8	2011-02-24 19:54:10.000000000 -0600
 @@ -49,7 +49,13 @@ print debugging information. Valid value
  display help text and exit
  
@@ -416,7 +416,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/doc/iscsiadm.8 open-iscsi-2.0-872-rc4-b
  .nf
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/etc/initd/initd.suse open-iscsi-2.0-872-rc4-bnx2i.work/etc/initd/initd.suse
 --- open-iscsi-2.0-872-rc4-bnx2i/etc/initd/initd.suse	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/etc/initd/initd.suse	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/etc/initd/initd.suse	2011-02-24 19:54:10.000000000 -0600
 @@ -30,7 +30,7 @@ iscsi_login_all_nodes()
  {
  	echo -n "Setting up iSCSI targets: "
@@ -437,7 +437,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/etc/initd/initd.suse open-iscsi-2.0-872
  		    RETVAL=1
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/include/iscsi_err.h open-iscsi-2.0-872-rc4-bnx2i.work/include/iscsi_err.h
 --- open-iscsi-2.0-872-rc4-bnx2i/include/iscsi_err.h	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/include/iscsi_err.h	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/include/iscsi_err.h	2011-02-24 19:54:10.000000000 -0600
 @@ -0,0 +1,69 @@
 +/*
 + * Return codes used by iSCSI tools.
@@ -510,7 +510,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/include/iscsi_err.h open-iscsi-2.0-872-
 +#endif
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/include/iscsi_if.h open-iscsi-2.0-872-rc4-bnx2i.work/include/iscsi_if.h
 --- open-iscsi-2.0-872-rc4-bnx2i/include/iscsi_if.h	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/include/iscsi_if.h	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/include/iscsi_if.h	2011-02-24 19:54:10.000000000 -0600
 @@ -65,6 +65,8 @@ enum iscsi_uevent_e {
  
  	ISCSI_UEVENT_PATH_UPDATE	= UEVENT_BASE + 20,
@@ -540,7 +540,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/include/iscsi_if.h open-iscsi-2.0-872-r
  #define CAP_SENDTARGETS_OFFLOAD	0x400	/* offload discovery process */
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/actor.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/actor.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/actor.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/actor.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/actor.c	2011-02-24 19:54:10.000000000 -0600
 @@ -113,14 +113,13 @@ actor_schedule_private(actor_t *thread, 
  		 * state to scheduled, else add current time to ttschedule and
  		 * insert in the queue at the correct point */
@@ -564,7 +564,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/actor.c open-iscsi-2.0-872-rc4-bnx2
  				if (head)
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/config.h open-iscsi-2.0-872-rc4-bnx2i.work/usr/config.h
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/config.h	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/config.h	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/config.h	2011-02-24 19:54:10.000000000 -0600
 @@ -141,7 +141,8 @@ struct iscsi_sendtargets_config {
  	int discoveryd_poll_inval;
  	struct iscsi_auth_config auth;
@@ -617,7 +617,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/cxgb3i.h open-iscsi-2.0-872-rc4-bnx
 -#endif
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/cxgbi.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/cxgbi.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/cxgbi.c	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/cxgbi.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/cxgbi.c	2011-02-24 19:54:10.000000000 -0600
 @@ -0,0 +1,24 @@
 +/*
 + * cxgb3i/cxgb4i helpers
@@ -645,7 +645,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/cxgbi.c open-iscsi-2.0-872-rc4-bnx2
 +}
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/cxgbi.h open-iscsi-2.0-872-rc4-bnx2i.work/usr/cxgbi.h
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/cxgbi.h	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/cxgbi.h	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/cxgbi.h	2011-02-24 19:54:10.000000000 -0600
 @@ -0,0 +1,8 @@
 +#ifndef CXGBI_TRANSPORT
 +#define CXGBI_TRANSPORT
@@ -657,7 +657,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/cxgbi.h open-iscsi-2.0-872-rc4-bnx2
 +#endif
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/discovery.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/discovery.c	2011-02-03 20:14:32.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/discovery.c	2011-02-24 19:54:35.000000000 -0600
 @@ -43,6 +43,12 @@
  #include "fw_context.h"
  #include "iscsid_req.h"
@@ -683,6 +683,15 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  
  static int request_initiator_name(void)
  {
+@@ -75,7 +80,7 @@ static int request_initiator_name(void)
+ 
+ 	rc = iscsid_exec_req(&req, &rsp, 1);
+ 	if (rc)
+-		return EIO;
++		return rc;
+ 
+ 	if (rsp.u.config.var[0] != '\0')
+ 		strcpy(initiator_name, rsp.u.config.var);
 @@ -107,14 +112,14 @@ int discovery_isns_set_servername(char *
  
  	if (port > USHRT_MAX) {
@@ -787,16 +796,27 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  	} else
  		log_debug(1, "%s %s with iSNS server successful.",
  			  op_reg ? "register" : "deregister", iname);
-@@ -342,7 +347,7 @@ int discovery_isns(void *data, struct if
- 		if (request_initiator_name() || initiator_name[0] == '\0') {
+@@ -339,11 +344,17 @@ int discovery_isns(void *data, struct if
+ 	if (iface && strlen(iface->iname))
+ 		iname = iface->iname;
+ 	else {
+-		if (request_initiator_name() || initiator_name[0] == '\0') {
++		rc = request_initiator_name();
++		if (rc) {
  			log_error("Cannot perform discovery. Initiatorname "
  				  "required.");
 -			return EINVAL;
++			return rc;
++		} else if (initiator_name[0] == '\0') {
++			log_error("Cannot perform discovery. Invalid "
++				  "Initiatorname.");
 +			return ISCSI_ERR_INVAL;
  		}
++
  		iname = initiator_name;
  	}
-@@ -352,7 +357,7 @@ int discovery_isns(void *data, struct if
+ 
+@@ -352,7 +363,7 @@ int discovery_isns(void *data, struct if
  		return rc;
  retry:
  	rc = discovery_isns_query(drec, iname, NULL, rec_list);
@@ -805,7 +825,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  		rc = discovery_isns_reg_node(iname, 1);
  		if (!rc) {
  			registered = 1;
-@@ -396,7 +401,7 @@ int discovery_fw(void *data, struct ifac
+@@ -396,7 +407,7 @@ int discovery_fw(void *data, struct ifac
  		if (!rec) {
  			log_error("Could not convert firmware info to "
  				  "node record.\n");
@@ -814,7 +834,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  			goto free_targets;
  		}
  		rec->disc_type = drec->type;
-@@ -428,10 +433,10 @@ int discovery_offload_sendtargets(int ho
+@@ -428,10 +439,10 @@ int discovery_offload_sendtargets(int ho
  
  	/* resolve the DiscoveryAddress to an IP address */
  	sprintf(default_port, "%d", drec->port);
@@ -829,7 +849,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  	req.u.st.ss = ss;
  
  	/*
-@@ -447,8 +452,8 @@ int discovery_offload_sendtargets(int ho
+@@ -447,8 +458,8 @@ int discovery_offload_sendtargets(int ho
  	if (rc) {
  		log_error("Could not offload sendtargets to %s.\n",
  			  drec->address);
@@ -840,7 +860,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  	}
  
  	return 0;
-@@ -490,15 +495,12 @@ request_targets(iscsi_session_t *session
+@@ -490,15 +501,12 @@ request_targets(iscsi_session_t *session
  
  	if (!iscsi_add_text(hdr, data, sizeof (data), "SendTargets", "All")) {
  		log_error("failed to add SendTargets text key");
@@ -857,7 +877,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  	if (!iscsi_io_send_pdu(&session->conn[0], hdr, ISCSI_DIGEST_NONE, data,
  		    ISCSI_DIGEST_NONE, session->conn[0].active_timeout)) {
  		log_error("failed to send SendTargets PDU");
-@@ -527,9 +529,6 @@ iterate_targets(iscsi_session_t *session
+@@ -527,9 +535,6 @@ iterate_targets(iscsi_session_t *session
  	text.ttt = ttt;
  	text.flags = ISCSI_FLAG_CMD_FINAL;
  
@@ -867,7 +887,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  	if (!iscsi_io_send_pdu(&session->conn[0], pdu, ISCSI_DIGEST_NONE, data,
  		    ISCSI_DIGEST_NONE, session->conn[0].active_timeout)) {
  		log_error("failed to send empty text PDU");
-@@ -543,19 +542,13 @@ static int add_portal(struct list_head *
+@@ -543,19 +548,13 @@ static int add_portal(struct list_head *
  		      char *targetname, char *address, char *port, char *tag)
  {
  	struct sockaddr_storage ss;
@@ -887,7 +907,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  	rec = calloc(1, sizeof(*rec));
  	if (!rec)
  		return 0;
-@@ -582,7 +575,7 @@ static int add_portal(struct list_head *
+@@ -582,7 +581,7 @@ static int add_portal(struct list_head *
  
  static int
  add_target_record(char *name, char *end, discovery_rec_t *drec,
@@ -896,7 +916,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  {
  	char *text = NULL;
  	char *nul = name;
-@@ -625,11 +618,16 @@ add_target_record(char *name, char *end,
+@@ -625,11 +624,16 @@ add_target_record(char *name, char *end,
  			log_error("no default address known for target %s",
  				  name);
  			return 0;
@@ -918,7 +938,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  		}
  		/* finished adding the default */
  		return 1;
-@@ -681,8 +679,7 @@ add_target_record(char *name, char *end,
+@@ -681,8 +685,7 @@ add_target_record(char *name, char *end,
  static int
  process_sendtargets_response(struct str_buffer *sendtargets,
  			     int final, discovery_rec_t *drec,
@@ -928,7 +948,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  {
  	char *start = str_buffer_data(sendtargets);
  	char *text = start;
-@@ -733,8 +730,7 @@ process_sendtargets_response(struct str_
+@@ -733,8 +736,7 @@ process_sendtargets_response(struct str_
  				 * "TargetName=" prefix.
  				 */
  				if (!add_target_record(record + 11, text,
@@ -938,7 +958,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  					log_error(
  					       "failed to add target record");
  					str_truncate_buffer(sendtargets, 0);
-@@ -762,7 +758,7 @@ process_sendtargets_response(struct str_
+@@ -762,7 +764,7 @@ process_sendtargets_response(struct str_
  				 "line %s",
  				 record, record);
  			if (add_target_record (record + 11, text,
@@ -947,7 +967,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  				num_targets++;
  				record = NULL;
  				str_truncate_buffer(sendtargets, 0);
-@@ -792,110 +788,47 @@ process_sendtargets_response(struct str_
+@@ -792,110 +794,47 @@ process_sendtargets_response(struct str_
  	return 1;
  }
  
@@ -960,8 +980,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
 -/* set timer to now + seconds */
 -static void
 -set_timer(struct timeval *timer, int seconds)
-+static void iscsi_free_session(struct iscsi_session *session)
- {
+-{
 -	if (timer) {
 -		memset(timer, 0, sizeof (*timer));
 -		gettimeofday(timer, NULL);
@@ -991,7 +1010,8 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
 -
 -static int
 -msecs_until(struct timeval *timer)
--{
++static void iscsi_free_session(struct iscsi_session *session)
+ {
 -	struct timeval now;
 -	int msecs;
 -	long partial;
@@ -1084,12 +1104,27 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  
  	/* OUI and uniqifying number */
  	session->isid[0] = DRIVER_ISID_0;
-@@ -914,102 +847,29 @@ init_new_session(struct iscsi_sendtarget
- 		if (initiator_name[0] == '\0') {
+@@ -905,111 +844,41 @@ init_new_session(struct iscsi_sendtarget
+ 	session->isid[4] = 0;
+ 	session->isid[5] = 0;
+ 
+-	request_initiator_name();
+-
+ 	if (iface && strlen(iface->iname)) {
+ 		strcpy(initiator_name, iface->iname);
+ 		/* MNC TODO add iface alias */
+ 	} else {
+-		if (initiator_name[0] == '\0') {
++		*rc = request_initiator_name();
++		if (*rc) {
  			log_error("Cannot perform discovery. Initiatorname "
  				  "required.");
 -			free(session);
 -			return NULL;
++			goto fail;
++		} else if (initiator_name[0] == '\0') {
++			log_error("Cannot perform discovery. Invalid "
++				  "Initiatorname.");
 +			*rc = ISCSI_ERR_INVAL;
 +			goto fail;
  		}
@@ -1103,16 +1138,20 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
 -done:
 -	return session;
 -}
--
--
++	session->id = -1;
+ 
++	/* setup authentication variables for the session*/
++	*rc = iscsi_setup_authentication(session, &config->auth);
++	if (*rc)
++		goto fail;
+ 
 -static int
 -setup_authentication(iscsi_session_t *session,
 -		     discovery_rec_t *drec,
 -		     struct iscsi_sendtargets_config *config)
 -{
 -	int rc;
-+	session->id = -1;
- 
+-
 -	rc = 1;
 -
 -	/* if we have any incoming credentials, we insist on authenticating
@@ -1140,11 +1179,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
 -		/* no or 1-way authentication */
 -		session->bidirectional_auth = 0;
 -	}
-+	/* setup authentication variables for the session*/
-+	*rc = iscsi_setup_authentication(session, &config->auth);
-+	if (*rc)
-+		goto fail;
- 
+-
 -	/* copy in whatever credentials we have */
 -	strlcpy(session->username, config->auth.username,
 -		sizeof (session->username));
@@ -1200,7 +1235,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  }
  
  static int
-@@ -1018,7 +878,6 @@ process_recvd_pdu(struct iscsi_hdr *pdu,
+@@ -1018,7 +887,6 @@ process_recvd_pdu(struct iscsi_hdr *pdu,
  		  struct list_head *rec_list,
  		  iscsi_session_t *session,
  		  struct str_buffer *sendtargets,
@@ -1208,7 +1243,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  		  int *active,
  		  int *valid_text,
  		  char *data)
-@@ -1063,8 +922,7 @@ process_recvd_pdu(struct iscsi_hdr *pdu,
+@@ -1063,8 +931,7 @@ process_recvd_pdu(struct iscsi_hdr *pdu,
  			process_sendtargets_response(sendtargets,
  						     final,
  						     drec,
@@ -1218,7 +1253,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  
  			if (final) {
  				/* SendTargets exchange is now complete
-@@ -1096,11 +954,9 @@ process_recvd_pdu(struct iscsi_hdr *pdu,
+@@ -1096,11 +963,9 @@ process_recvd_pdu(struct iscsi_hdr *pdu,
  }
  
  /*
@@ -1232,7 +1267,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  {
  	struct iscsi_logout logout_req;
  	struct iscsi_logout_rsp logout_resp;
-@@ -1128,7 +984,7 @@ iscsi_logout_and_disconnect(iscsi_sessio
+@@ -1128,7 +993,7 @@ iscsi_logout_and_disconnect(iscsi_sessio
  	if (!rc) {
  		log_error(
  		       "iscsid: iscsi_logout - failed to send logout PDU.");
@@ -1241,7 +1276,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  	}
  
  	/*
-@@ -1138,117 +994,278 @@ iscsi_logout_and_disconnect(iscsi_sessio
+@@ -1138,117 +1003,278 @@ iscsi_logout_and_disconnect(iscsi_sessio
  	rc = iscsi_io_recv_pdu(&session->conn[0],
  		(struct iscsi_hdr *)&logout_resp, ISCSI_DIGEST_NONE, NULL,
  		0, ISCSI_DIGEST_NONE, 1);
@@ -1256,7 +1291,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  		       logout_resp.response);
  	}
 +}
- 
++
 +static void iscsi_destroy_session(struct iscsi_session *session)
 +{
 +	struct iscsi_transport *t = session->t;
@@ -1282,7 +1317,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
 +			  session->id, conn->id, rc);
 +		goto done;
 +        }
-+
+ 
 +	log_debug(2, "%s destroy conn", __FUNCTION__);
 +        rc = ipc->destroy_conn(session->t->handle, session->id, conn->id);
 +	if (rc) {
@@ -1409,7 +1444,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
 +	rc = t->template->ep_connect(conn, 1);
 +	if (rc < 0) {
 +		rc = ISCSI_ERR_TRANS;
-+		goto fail;
++		goto close_ipc;
 +	}
 +
 +	do {
@@ -1501,7 +1536,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
 +		ipc->ctldev_close();
 +		conn->socket_fd = -1;
 +	}
-+fail:
++
 +	log_error("Connection to discovery portal %s failed: %s",
 +		  conn->host, iscsi_err_to_str(rc));
 +	return rc;
@@ -1591,7 +1626,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  	/* slowly back off the frequency of login attempts */
  	if (login_failures == 0)
  		login_delay = 0;
-@@ -1263,47 +1280,44 @@ redirect_reconnect:
+@@ -1263,47 +1289,44 @@ redirect_reconnect:
  	else
  		login_delay = 60;	/* after 2 minutes, try once a minute */
  
@@ -1662,7 +1697,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  	case LOGIN_OK:
  	case LOGIN_REDIRECT:
  		break;
-@@ -1311,8 +1325,7 @@ redirect_reconnect:
+@@ -1311,8 +1334,7 @@ redirect_reconnect:
  	case LOGIN_IO_ERROR:
  	case LOGIN_REDIRECTION_FAILED:
  		/* try again */
@@ -1672,7 +1707,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  		login_failures++;
  		goto set_address;
  
-@@ -1322,16 +1335,16 @@ redirect_reconnect:
+@@ -1322,16 +1344,16 @@ redirect_reconnect:
  	case LOGIN_AUTHENTICATION_FAILED:
  	case LOGIN_VERSION_MISMATCH:
  	case LOGIN_INVALID_PDU:
@@ -1694,7 +1729,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  		login_failures = 0;
  		break;
  	case ISCSI_STATUS_CLS_REDIRECT:
-@@ -1343,14 +1356,16 @@ redirect_reconnect:
+@@ -1343,14 +1365,16 @@ redirect_reconnect:
  		case ISCSI_LOGIN_STATUS_TGT_MOVED_TEMP:
  			log_warning(
  				"discovery login temporarily redirected to "
@@ -1714,7 +1749,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  			goto redirect_reconnect;
  		default:
  			log_error(
-@@ -1361,32 +1376,130 @@ redirect_reconnect:
+@@ -1361,32 +1385,130 @@ redirect_reconnect:
  		}
  		break;
  	case ISCSI_STATUS_CLS_INITIATOR_ERR:
@@ -1856,7 +1891,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  	/* reinitialize */
  	str_truncate_buffer(&sendtargets, 0);
  
-@@ -1397,7 +1510,7 @@ redirect_reconnect:
+@@ -1397,7 +1519,7 @@ redirect_reconnect:
  	active = 1;
  
  	/* set timeouts */
@@ -1865,7 +1900,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  
  	/* prepare to poll */
  	memset(&pfd, 0, sizeof (pfd));
-@@ -1405,7 +1518,7 @@ redirect_reconnect:
+@@ -1405,7 +1527,7 @@ redirect_reconnect:
  	pfd.events = POLLIN | POLLPRI;
  
  repoll:
@@ -1874,7 +1909,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  	/* block until we receive a PDU, a TCP FIN, a TCP RST,
  	 * or a timeout
  	 */
-@@ -1422,31 +1535,30 @@ repoll:
+@@ -1422,31 +1544,30 @@ repoll:
  		 "discovery process to %s:%d returned from poll, rc %d",
  		 drec->address, drec->port, rc);
  
@@ -1919,7 +1954,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  				goto free_sendtargets;
  			}
  
-@@ -1455,14 +1567,13 @@ repoll:
+@@ -1455,14 +1576,13 @@ repoll:
  			 */
  			rc = process_recvd_pdu(pdu, drec, rec_list,
  					       session, &sendtargets,
@@ -1935,7 +1970,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  				       session->conn[0].active_timeout);
  				goto repoll;
  			}
-@@ -1472,8 +1583,7 @@ repoll:
+@@ -1472,8 +1592,7 @@ repoll:
  			log_warning("discovery session to %s:%d "
  				    "terminating after hangup",
  				     drec->address, drec->port);
@@ -1945,7 +1980,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  			goto free_sendtargets;
  		}
  
-@@ -1489,18 +1599,9 @@ repoll:
+@@ -1489,18 +1608,9 @@ repoll:
  			goto reconnect;
  		}
  	} else if (rc < 0) {
@@ -1967,7 +2002,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  	}
  
  	log_debug(1, "discovery process to %s:%d exiting",
-@@ -1510,8 +1611,9 @@ repoll:
+@@ -1510,8 +1620,9 @@ repoll:
  free_sendtargets:
  	str_free_buffer(&sendtargets);
  	free(data);
@@ -1980,7 +2015,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discovery.c open-iscsi-2.0-872-rc4-
  
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discoveryd.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/discoveryd.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/discoveryd.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/discoveryd.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/discoveryd.c	2011-02-24 19:54:10.000000000 -0600
 @@ -44,6 +44,7 @@
  #include "isns.h"
  #include "paths.h"
@@ -2226,7 +2261,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/discoveryd.c open-iscsi-2.0-872-rc4
  	return 0;
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/event_poll.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/event_poll.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/event_poll.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/event_poll.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/event_poll.c	2011-02-24 19:54:10.000000000 -0600
 @@ -35,6 +35,7 @@
  #include "iscsi_ipc.h"
  #include "actor.h"
@@ -2244,7 +2279,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/event_poll.c open-iscsi-2.0-872-rc4
  }
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/host.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/host.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/host.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/host.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/host.c	2011-02-24 19:54:10.000000000 -0600
 @@ -33,6 +33,7 @@
  #include "transport.h"
  #include "initiator.h"
@@ -2275,7 +2310,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/host.c open-iscsi-2.0-872-rc4-bnx2i
  }
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/idbm.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/idbm.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/idbm.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/idbm.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/idbm.c	2011-02-24 19:54:10.000000000 -0600
 @@ -40,6 +40,7 @@
  #include "iface.h"
  #include "sysdeps.h"
@@ -2974,7 +3009,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/idbm.c open-iscsi-2.0-872-rc4-bnx2i
  	iface_setup_defaults(&rec->iface);
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/idbm.h open-iscsi-2.0-872-rc4-bnx2i.work/usr/idbm.h
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/idbm.h	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/idbm.h	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/idbm.h	2011-02-24 19:54:10.000000000 -0600
 @@ -93,9 +93,6 @@ struct rec_op_data {
  	node_rec_t *match_rec;
  	idbm_iface_op_fn *fn;
@@ -2987,7 +3022,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/idbm.h open-iscsi-2.0-872-rc4-bnx2i
  extern int idbm_for_each_node(int *found, void *data,
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iface.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/iface.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/iface.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iface.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iface.c	2011-02-24 19:54:10.000000000 -0600
 @@ -39,6 +39,7 @@
  #include "host.h"
  #include "fw_context.h"
@@ -3146,7 +3181,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iface.c open-iscsi-2.0-872-rc4-bnx2
  	INIT_LIST_HEAD(&iface_copy->list);
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/initiator.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/initiator.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/initiator.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/initiator.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/initiator.c	2011-02-24 19:54:10.000000000 -0600
 @@ -46,6 +46,7 @@
  #include "iscsi_settings.h"
  #include "iface.h"
@@ -4705,7 +4740,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/initiator.c open-iscsi-2.0-872-rc4-
 +}
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/initiator_common.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/initiator_common.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/initiator_common.c	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/initiator_common.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/initiator_common.c	2011-02-24 19:54:10.000000000 -0600
 @@ -0,0 +1,601 @@
 +/*
 + * Common code for setting up discovery and normal sessions.
@@ -5310,7 +5345,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/initiator_common.c open-iscsi-2.0-8
 +}
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/initiator.h open-iscsi-2.0-872-rc4-bnx2i.work/usr/initiator.h
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/initiator.h	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/initiator.h	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/initiator.h	2011-02-24 19:54:10.000000000 -0600
 @@ -67,6 +67,7 @@ typedef enum conn_login_status_e {
  	CONN_LOGIN_RETRY		= 3,
  	CONN_LOGIN_IMM_RETRY		= 4,
@@ -5422,7 +5457,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/initiator.h open-iscsi-2.0-872-rc4-
  #endif /* INITIATOR_H */
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/io.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/io.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/io.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/io.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/io.c	2011-02-24 19:54:10.000000000 -0600
 @@ -401,7 +401,6 @@ iscsi_io_connect(iscsi_conn_t *conn)
  	int rc, ret;
  	struct sigaction action;
@@ -5627,7 +5662,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/io.c open-iscsi-2.0-872-rc4-bnx2i.w
  	return h_bytes + ahs_bytes + d_bytes;
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsiadm.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsiadm.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/iscsiadm.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsiadm.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsiadm.c	2011-02-24 19:54:10.000000000 -0600
 @@ -48,10 +48,11 @@
  #include "session_mgmt.h"
  #include "iscsid_req.h"
@@ -6746,7 +6781,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsiadm.c open-iscsi-2.0-872-rc4-b
  
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsid.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsid.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/iscsid.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsid.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsid.c	2011-02-24 19:54:29.000000000 -0600
 @@ -31,6 +31,8 @@
  #include <sys/utsname.h>
  #include <sys/types.h>
@@ -6815,6 +6850,15 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsid.c open-iscsi-2.0-872-rc4-bnx
  		retries++;
  		sleep(1);
  		goto retry;
+@@ -302,7 +301,7 @@ static void iscsid_shutdown(void)
+ 
+ static void catch_signal(int signo)
+ {
+-	log_debug(1, "%d caught signal -%d...", signo, getpid());
++	log_debug(1, "pid %d caught signal %d", getpid(), signo);
+ 	switch (signo) {
+ 	case SIGTERM:
+ 		iscsid_shutdown();
 @@ -318,7 +317,7 @@ static void missing_iname_warn(char *ini
  	log_error("Warning: InitiatorName file %s does not exist or does not "
  		  "contain a properly formated InitiatorName. If using "
@@ -6914,7 +6958,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsid.c open-iscsi-2.0-872-rc4-bnx
  	actor_init();
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsid.h open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsid.h
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/iscsid.h	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsid.h	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsid.h	2011-02-24 19:54:10.000000000 -0600
 @@ -31,6 +31,5 @@ struct iscsi_daemon_config {
  	char *initiator_alias;
  };
@@ -6924,7 +6968,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsid.h open-iscsi-2.0-872-rc4-bnx
  #endif	/* ISCSID_H */
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsid_req.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsid_req.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/iscsid_req.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsid_req.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsid_req.c	2011-02-24 19:54:10.000000000 -0600
 @@ -31,6 +31,7 @@
  #include "mgmt_ipc.h"
  #include "iscsi_util.h"
@@ -7049,7 +7093,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsid_req.c open-iscsi-2.0-872-rc4
 -}
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsid_req.h open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsid_req.h
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/iscsid_req.h	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsid_req.h	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsid_req.h	2011-02-24 19:54:10.000000000 -0600
 @@ -27,7 +27,6 @@ struct node_rec;
  
  extern int iscsid_exec_req(struct iscsiadm_req *req, struct iscsiadm_rsp *rsp,
@@ -7060,7 +7104,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsid_req.h open-iscsi-2.0-872-rc4
  extern int iscsid_req_by_rec(int cmd, struct node_rec *rec);
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_err.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_err.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_err.c	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_err.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_err.c	2011-02-24 19:54:10.000000000 -0600
 @@ -0,0 +1,72 @@
 +/*
 + * iSCSI error helpers
@@ -7136,7 +7180,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_err.c open-iscsi-2.0-872-rc4-
 +}
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_ipc.h open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_ipc.h
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_ipc.h	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_ipc.h	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_ipc.h	2011-02-24 19:54:10.000000000 -0600
 @@ -34,6 +34,26 @@ enum {
  };
  
@@ -7166,7 +7210,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_ipc.h open-iscsi-2.0-872-rc4-
   * struct iscsi_ipc - Open-iSCSI Interface for Kernel IPC
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_net_util.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_net_util.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_net_util.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_net_util.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_net_util.c	2011-02-24 19:54:10.000000000 -0600
 @@ -41,6 +41,7 @@ struct iscsi_net_driver {
  static struct iscsi_net_driver net_drivers[] = {
  #ifdef OFFLOAD_BOOT_SUPPORTED
@@ -7177,7 +7221,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_net_util.c open-iscsi-2.0-872
  #endif
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsistart.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsistart.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/iscsistart.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsistart.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsistart.c	2011-02-24 19:54:10.000000000 -0600
 @@ -47,6 +47,7 @@
  #include "iface.h"
  #include "sysdeps.h"
@@ -7342,7 +7386,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsistart.c open-iscsi-2.0-872-rc4
  	ipc->ctldev_close();
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_sysfs.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_sysfs.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_sysfs.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_sysfs.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_sysfs.c	2011-02-24 19:54:10.000000000 -0600
 @@ -36,6 +36,7 @@
  #include "iface.h"
  #include "session_info.h"
@@ -7612,7 +7656,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_sysfs.c open-iscsi-2.0-872-rc
  	snprintf(path_full, sizeof(path_full), "%s%s/device/target%d:0:%d",
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_timer.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_timer.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_timer.c	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_timer.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_timer.c	2011-02-24 19:54:10.000000000 -0600
 @@ -0,0 +1,86 @@
 +/*
 + * iSCSI timer
@@ -7702,7 +7746,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_timer.c open-iscsi-2.0-872-rc
 +}
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_timer.h open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_timer.h
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_timer.h	1969-12-31 18:00:00.000000000 -0600
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_timer.h	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/iscsi_timer.h	2011-02-24 19:54:10.000000000 -0600
 @@ -0,0 +1,28 @@
 +/*
 + * iSCSI timer
@@ -7734,7 +7778,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/iscsi_timer.h open-iscsi-2.0-872-rc
 +#endif
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/login.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/login.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/login.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/login.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/login.c	2011-02-24 19:54:10.000000000 -0600
 @@ -27,11 +27,14 @@
  #include <stdio.h>
  #include <stdlib.h>
@@ -7869,7 +7913,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/login.c open-iscsi-2.0-872-rc4-bnx2
  	c->ret = LOGIN_OK;
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/Makefile open-iscsi-2.0-872-rc4-bnx2i.work/usr/Makefile
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/Makefile	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/Makefile	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/Makefile	2011-02-24 19:54:10.000000000 -0600
 @@ -37,12 +37,13 @@ PROGRAMS = iscsid iscsiadm iscsistart
  # libc compat files
  SYSDEPS_SRCS = $(wildcard ../utils/sysdeps/*.o)
@@ -7908,7 +7952,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/Makefile open-iscsi-2.0-872-rc4-bnx
  clean:
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/mgmt_ipc.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/mgmt_ipc.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/mgmt_ipc.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/mgmt_ipc.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/mgmt_ipc.c	2011-02-24 19:54:10.000000000 -0600
 @@ -35,6 +35,7 @@
  #include "transport.h"
  #include "sysdeps.h"
@@ -8209,7 +8253,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/mgmt_ipc.c open-iscsi-2.0-872-rc4-b
  err:
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/mgmt_ipc.h open-iscsi-2.0-872-rc4-bnx2i.work/usr/mgmt_ipc.h
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/mgmt_ipc.h	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/mgmt_ipc.h	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/mgmt_ipc.h	2011-02-24 19:54:10.000000000 -0600
 @@ -26,30 +26,6 @@
  #define ISCSIADM_NAMESPACE	"ISCSIADM_ABSTRACT_NAMESPACE"
  #define PEERUSER_MAX		64
@@ -8281,7 +8325,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/mgmt_ipc.h open-iscsi-2.0-872-rc4-b
  void mgmt_ipc_handle(int accept_fd);
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/netlink.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/netlink.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/netlink.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/netlink.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/netlink.c	2011-02-24 19:54:10.000000000 -0600
 @@ -33,7 +33,6 @@
  
  #include "types.h"
@@ -8513,7 +8557,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/netlink.c open-iscsi-2.0-872-rc4-bn
 +}
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/session_info.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/session_info.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/session_info.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/session_info.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/session_info.c	2011-02-24 19:54:10.000000000 -0600
 @@ -13,6 +13,7 @@
  #include "initiator.h"
  #include "iface.h"
@@ -8551,7 +8595,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/session_info.c open-iscsi-2.0-872-r
  }
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/session_mgmt.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/session_mgmt.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/session_mgmt.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/session_mgmt.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/session_mgmt.c	2011-02-24 19:54:10.000000000 -0600
 @@ -32,6 +32,7 @@
  #include "iscsi_sysfs.h"
  #include "log.h"
@@ -8667,7 +8711,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/session_mgmt.c open-iscsi-2.0-872-r
  }
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/transport.c open-iscsi-2.0-872-rc4-bnx2i.work/usr/transport.c
 --- open-iscsi-2.0-872-rc4-bnx2i/usr/transport.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/transport.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/usr/transport.c	2011-02-24 19:54:10.000000000 -0600
 @@ -25,7 +25,7 @@
  #include "log.h"
  #include "iscsi_util.h"
@@ -8714,7 +8758,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/usr/transport.c open-iscsi-2.0-872-rc4-
  }
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/utils/fwparam_ibft/fw_entry.c open-iscsi-2.0-872-rc4-bnx2i.work/utils/fwparam_ibft/fw_entry.c
 --- open-iscsi-2.0-872-rc4-bnx2i/utils/fwparam_ibft/fw_entry.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/utils/fwparam_ibft/fw_entry.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/utils/fwparam_ibft/fw_entry.c	2011-02-24 19:54:10.000000000 -0600
 @@ -34,6 +34,7 @@
  #include "fwparam.h"
  #include "idbm_fields.h"
@@ -8746,7 +8790,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/utils/fwparam_ibft/fw_entry.c open-iscs
  /**
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/utils/fwparam_ibft/fwparam_ppc.c open-iscsi-2.0-872-rc4-bnx2i.work/utils/fwparam_ibft/fwparam_ppc.c
 --- open-iscsi-2.0-872-rc4-bnx2i/utils/fwparam_ibft/fwparam_ppc.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/utils/fwparam_ibft/fwparam_ppc.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/utils/fwparam_ibft/fwparam_ppc.c	2011-02-24 19:54:10.000000000 -0600
 @@ -30,6 +30,7 @@
  #include "iscsi_obp.h"
  #include "prom_parse.h"
@@ -8841,7 +8885,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/utils/fwparam_ibft/fwparam_ppc.c open-i
  				list_add_tail(&context->list, list);
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/utils/fwparam_ibft/fwparam_sysfs.c open-iscsi-2.0-872-rc4-bnx2i.work/utils/fwparam_ibft/fwparam_sysfs.c
 --- open-iscsi-2.0-872-rc4-bnx2i/utils/fwparam_ibft/fwparam_sysfs.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/utils/fwparam_ibft/fwparam_sysfs.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/utils/fwparam_ibft/fwparam_sysfs.c	2011-02-24 19:54:21.000000000 -0600
 @@ -36,6 +36,7 @@
  #include "fwparam.h"
  #include "sysdeps.h"
@@ -8859,7 +8903,13 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/utils/fwparam_ibft/fwparam_sysfs.c open
  
  	while ((dent = readdir(dirfd))) {
  		char lld_root[FILENAMESZ];
-@@ -369,7 +370,7 @@ int fwparam_sysfs_boot_info(struct boot_
+@@ -364,12 +365,12 @@ int fwparam_sysfs_boot_info(struct boot_
+ 		if (strncmp(dent->d_name, ISCSI_LLD_SUBSYS_PREFIX, 10))
+ 			continue;
+ 
+-		snprintf(lld_root, FILENAMESZ, ISCSI_LLD_ROOT"%s",
++		snprintf(lld_root, FILENAMESZ, ISCSI_LLD_ROOT"%s/",
+ 			 dent->d_name);
  		if (!get_boot_info(context, lld_root, dent->d_name))
  			goto done;
  	}
@@ -8953,7 +9003,7 @@ diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/utils/fwparam_ibft/fwparam_sysfs.c open
  	return rc;
 diff -Naurp open-iscsi-2.0-872-rc4-bnx2i/utils/open-isns/socket.c open-iscsi-2.0-872-rc4-bnx2i.work/utils/open-isns/socket.c
 --- open-iscsi-2.0-872-rc4-bnx2i/utils/open-isns/socket.c	2010-07-11 04:05:58.000000000 -0500
-+++ open-iscsi-2.0-872-rc4-bnx2i.work/utils/open-isns/socket.c	2011-02-03 20:14:23.000000000 -0600
++++ open-iscsi-2.0-872-rc4-bnx2i.work/utils/open-isns/socket.c	2011-02-24 19:54:10.000000000 -0600
 @@ -805,7 +805,7 @@ isns_net_stream_xmit(isns_socket_t *sock
  void
  isns_net_stream_hup(isns_socket_t *sock)
diff --git a/iscsi-initiator-utils.spec b/iscsi-initiator-utils.spec
index f463422..130a32a 100644
--- a/iscsi-initiator-utils.spec
+++ b/iscsi-initiator-utils.spec
@@ -3,7 +3,7 @@
 Summary: iSCSI daemon and utility programs
 Name: iscsi-initiator-utils
 Version: 6.2.0.872
-Release: 17%{?dist}
+Release: 18%{?dist}
 Source0: http://people.redhat.com/mchristi/iscsi/rhel6.0/source/open-iscsi-2.0-872-rc4-bnx2i.tar.gz
 Source1: iscsid.init
 Source2: iscsidevs.init
@@ -11,7 +11,7 @@ Source3: 04-iscsi
 
 # sync brcm to 0.6.2.13
 Patch0: iscsi-initiator-utils-sync-brcm-0.6.2.13.patch
-# sync iscsi tools to upstream commit 2e281f047571e9fb99b9b0b11ff479a487a8e6b1 
+# sync iscsi tools to upstream commit 6a9fc9ff0f49eac37da86847268dda437609f1d4
 Patch1: iscsi-initiator-utils-sync-iscsi.patch
 # Add Red Hat specific info to docs.
 Patch2: iscsi-initiator-utils-update-initscripts-and-docs.patch
@@ -35,16 +35,10 @@ Patch10: iscsi-initiator-utils-libiscsi-partial-offload-discovery.patch
 Patch11: iscsi-initiator-utils-uio-handle-different-iface_rec.patch
 # Document missing brcm arguments
 Patch12: iscsi-initiator-utils-brcm-man.patch
-# Don't build unused isns dsa code.
-Patch13: iscsi-initiator-utils-disable-dsa-code.patch
-# support hostnames in node mode
-Patch14: iscsi-initiator-utils-node-mode-hostname.patch
 # DCB iscsi support
-Patch15: iscsi-initiator-utils-dcb.patch
-# fwparam_sysfs: fix pathname manipulation
-Patch16: iscsi-initiator-utils-fwparam_sysfs-fix-pathname-manipulation.patch
+Patch13: iscsi-initiator-utils-dcb.patch
 # libiscsi: nodes remember their interface
-Patch17: iscsi-initiator-utils-libiscsi-nodes-remember-the-interface.patch
+Patch14: iscsi-initiator-utils-libiscsi-nodes-remember-the-interface.patch
 
 Group: System Environment/Daemons
 License: GPLv2+
@@ -85,11 +79,8 @@ developing applications that use %{name}.
 %patch10 -p1 -b .libiscsi-partial-offload
 %patch11 -p1 -b .uio-handle-different-iface_rec
 %patch12 -p1 -b .brcm-man
-%patch13 -p1 -b .disable-dsa-code
-%patch14 -p1 -b .node-mode-hostname
-%patch15 -p1 -b .dcb
-%patch16 -p1 -b .fwparam-sysfs-bug
-%patch17 -p1 -b .libiscsi-remember-the-interface
+%patch13 -p1 -b .dcb
+%patch14 -p1 -b .libiscsi-remember-the-interface
 
 
 %build
@@ -209,6 +200,10 @@ fi
 %{_includedir}/libiscsi.h
 
 %changelog
+* Thu Feb 24 2011 Mike Christie <mcrhsit@redhat.com> 6.2.0.872.18
+- 677148 fix iscsiadm exit code when iscsid is not running and the
+discovery command is run.
+
 * Sat Feb 19 2011 Mike Christie <mcrhsit@redhat.com> 6.2.0.872.17
 - 634021 Fix in .14 added regression during iscsi startup that prevented
 sessions from getting created.