sync with upstream v2.0.873-84-gc9d830b
ignore iscsiadm return in iscsi.service make sure systemd order against remote mounts is correct add discovery as a valid mode in iscsiadm.8 make sure to pass --with-security=no to isns configure
This commit is contained in:
		
						commit
						c30d436535
					
				| @ -0,0 +1,30 @@ | ||||
| From f2ecc22d3cb0473b117a33e048a5a56cd8e9e46d Mon Sep 17 00:00:00 2001 | ||||
| From: Chris Leech <cleech@redhat.com> | ||||
| Date: Mon, 24 Feb 2014 03:14:17 -0500 | ||||
| Subject: [PATCH] iscsiadm: Fix the hostno check for stats submode of host mode | ||||
| 
 | ||||
| This fixes the condition where hostno value of 0 was being treated | ||||
| as invalid. | ||||
| 
 | ||||
| Signed-off-by: Chris Leech <cleech@redhat.com> | ||||
| Signed-off-by: Adheer Chandravanshi <adheer.chandravanshi@qlogic.com> | ||||
| ---
 | ||||
|  usr/iscsiadm.c | 2 +- | ||||
|  1 file changed, 1 insertion(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/usr/iscsiadm.c b/usr/iscsiadm.c
 | ||||
| index 3cde8d1..36617ab 100644
 | ||||
| --- a/usr/iscsiadm.c
 | ||||
| +++ b/usr/iscsiadm.c
 | ||||
| @@ -3470,7 +3470,7 @@ main(int argc, char **argv)
 | ||||
|  						       ¶ms); | ||||
|  				break; | ||||
|  			case MODE_HOST_STATS: | ||||
| -				if (!host_no) {
 | ||||
| +				if (host_no > MAX_HOST_NO) {
 | ||||
|  					log_error("STATS mode requires host no"); | ||||
|  					rc = ISCSI_ERR_INVAL; | ||||
|  					break; | ||||
| -- 
 | ||||
| 1.9.3 | ||||
| 
 | ||||
							
								
								
									
										31
									
								
								0072-iscsiadm-Fix-the-compile-time-warning.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								0072-iscsiadm-Fix-the-compile-time-warning.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,31 @@ | ||||
| From b1526306e413f0874d608637cd2a9f6571ea4d32 Mon Sep 17 00:00:00 2001 | ||||
| From: Adheer Chandravanshi <adheer.chandravanshi@qlogic.com> | ||||
| Date: Mon, 24 Feb 2014 03:14:18 -0500 | ||||
| Subject: [PATCH] iscsiadm: Fix the compile time warning | ||||
| 
 | ||||
| This fixes the following compile time warning message: | ||||
| 
 | ||||
| iscsiadm.c:2248: warning: passing argument 1 of 'print_host_stats' from incompatible pointer type | ||||
| 
 | ||||
| Signed-off-by: Adheer Chandravanshi <adheer.chandravanshi@qlogic.com> | ||||
| ---
 | ||||
|  usr/iscsiadm.c | 3 ++- | ||||
|  1 file changed, 2 insertions(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/usr/iscsiadm.c b/usr/iscsiadm.c
 | ||||
| index 36617ab..389f4b8 100644
 | ||||
| --- a/usr/iscsiadm.c
 | ||||
| +++ b/usr/iscsiadm.c
 | ||||
| @@ -2245,7 +2245,8 @@ static int exec_host_stats_op(int op, int info_level, uint32_t host_no)
 | ||||
|  		goto exit_host_stats; | ||||
|  	} | ||||
|   | ||||
| -	print_host_stats(req_buf + sizeof(struct iscsi_uevent));
 | ||||
| +	print_host_stats((struct iscsi_offload_host_stats *)(req_buf +
 | ||||
| +			 sizeof(struct iscsi_uevent)));
 | ||||
|   | ||||
|  	ipc->ctldev_close(); | ||||
|   | ||||
| -- 
 | ||||
| 1.9.3 | ||||
| 
 | ||||
							
								
								
									
										56
									
								
								0074-iscsid-Fix-handling-of-iscsi-async-events.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								0074-iscsid-Fix-handling-of-iscsi-async-events.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,56 @@ | ||||
| From 36a8b41de43749d91dfd52f9c8ad4a454c9a8f15 Mon Sep 17 00:00:00 2001 | ||||
| From: Mike Christie <michaelc@cs.wisc.edu> | ||||
| Date: Fri, 14 Mar 2014 01:41:29 -0500 | ||||
| Subject: [PATCH] iscsid: Fix handling of iscsi async events. | ||||
| 
 | ||||
| When iscsi targets send 32 or more iscsi async event pdus the | ||||
| initiator will run out of memory for events and this message: | ||||
| 
 | ||||
| BUG: iscsid: Can not allocate memory for receive context. | ||||
| 
 | ||||
| will be logged non stop. iscsid will then not be able to | ||||
| complate any more requests because it is stuck in a endless loop | ||||
| printing that message. | ||||
| 
 | ||||
| This fixes the problem by having iscsid handle an event after it | ||||
| has read it in from netlink or the mgmt ipc. Previously we would | ||||
| queue all events then handle them. | ||||
| ---
 | ||||
|  usr/event_poll.c | 5 ++++- | ||||
|  usr/netlink.c    | 2 +- | ||||
|  2 files changed, 5 insertions(+), 2 deletions(-) | ||||
| 
 | ||||
| diff --git a/usr/event_poll.c b/usr/event_poll.c
 | ||||
| index f36fec1..939f1a2 100644
 | ||||
| --- a/usr/event_poll.c
 | ||||
| +++ b/usr/event_poll.c
 | ||||
| @@ -165,8 +165,11 @@ void event_loop(struct iscsi_ipc *ipc, int control_fd, int mgmt_ipc_fd)
 | ||||
|  					  "exiting", res, errno); | ||||
|  				break; | ||||
|  			} | ||||
| -		} else
 | ||||
| +		}
 | ||||
| +
 | ||||
| +		if (res >= 0)
 | ||||
|  			actor_poll(); | ||||
| +
 | ||||
|  		reap_proc(); | ||||
|  		/* | ||||
|  		 * flush sysfs cache since kernel objs may | ||||
| diff --git a/usr/netlink.c b/usr/netlink.c
 | ||||
| index 1c4b5cc..532d9ef 100644
 | ||||
| --- a/usr/netlink.c
 | ||||
| +++ b/usr/netlink.c
 | ||||
| @@ -1615,8 +1615,8 @@ static int ctldev_handle(void)
 | ||||
|   | ||||
|  	ev_context = ipc_ev_clbk->get_ev_context(conn, ev_size); | ||||
|  	if (!ev_context) { | ||||
| -		/* retry later */
 | ||||
|  		log_error("Can not allocate memory for receive context."); | ||||
| +		drop_data(nlh);
 | ||||
|  		return -ENOMEM; | ||||
|  	} | ||||
|   | ||||
| -- 
 | ||||
| 1.9.3 | ||||
| 
 | ||||
							
								
								
									
										41
									
								
								0075-be2iscsi-Fix-MaxXmitDataLenght-of-the-driver.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								0075-be2iscsi-Fix-MaxXmitDataLenght-of-the-driver.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,41 @@ | ||||
| From 5f28b8b73fbdb8c1e7fbe4a0e40dd2857b74b685 Mon Sep 17 00:00:00 2001 | ||||
| From: John Soni Jose <sony.john-n@emulex.com> | ||||
| Date: Fri, 21 Mar 2014 11:51:09 +0530 | ||||
| Subject: [PATCH] be2iscsi: Fix MaxXmitDataLenght of the driver. | ||||
| 
 | ||||
|  Issue : | ||||
|  During login negotiation if the MaxRecvDataSegmenLen given by the | ||||
|  target is 0, then MRDSL default value of 8K should be considered. | ||||
|  Some old targets close the CXN if the PDU received size is greater | ||||
|  than the MaxRecvDataSegmentLen set during negotiation. | ||||
| 
 | ||||
|  Fix : | ||||
|  When target is not sending MaxRecvDataSegmentLen in the negotiated | ||||
|  params the value is 0. be2iscsi was setting max_xmit_dlength to 64k | ||||
|  in this case. This fix sets the MaxRecvDataSegmentLen=8k if during | ||||
|  negotiation the MaxRecvDataSegmentLen=0 | ||||
| 
 | ||||
| Signed-off-by: John Soni Jose <sony.john-n@emulex.com> | ||||
| Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@emulex.com> | ||||
| ---
 | ||||
|  usr/be2iscsi.c | 4 ---- | ||||
|  1 file changed, 4 deletions(-) | ||||
| 
 | ||||
| diff --git a/usr/be2iscsi.c b/usr/be2iscsi.c
 | ||||
| index ce8b719..ba4c29f 100644
 | ||||
| --- a/usr/be2iscsi.c
 | ||||
| +++ b/usr/be2iscsi.c
 | ||||
| @@ -33,10 +33,6 @@ void be2iscsi_create_conn(struct iscsi_conn *conn)
 | ||||
|  	if (conn->max_xmit_dlength > 65536) | ||||
|  		conn->max_xmit_dlength = 65536; | ||||
|   | ||||
| -	if (!conn_rec->iscsi.MaxXmitDataSegmentLength ||
 | ||||
| -	    conn_rec->iscsi.MaxXmitDataSegmentLength > 65536)
 | ||||
| -		conn_rec->iscsi.MaxXmitDataSegmentLength = 65536;
 | ||||
| -
 | ||||
|  	session->erl = 0; | ||||
|  	session->initial_r2t_en = 1; | ||||
|  } | ||||
| -- 
 | ||||
| 1.9.3 | ||||
| 
 | ||||
							
								
								
									
										61
									
								
								0076-Fix-StatSN-in-Open-iSCSI-Stack.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								0076-Fix-StatSN-in-Open-iSCSI-Stack.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,61 @@ | ||||
| From e696b94743d880c30c6e4e39c753e4d652845e85 Mon Sep 17 00:00:00 2001 | ||||
| From: John Soni Jose <jose0here@gmail.com> | ||||
| Date: Fri, 21 Mar 2014 11:51:19 +0530 | ||||
| Subject: [PATCH] Fix StatSN in Open-iSCSI Stack. | ||||
| 
 | ||||
|  When LIO target is used, STATSN in login response can be in | ||||
|  the range 0x0 - 0xFFFFFFFF. Open-iSCSI Stack had the type | ||||
|  as ISCSI_INT for StatSN, so StatSN used to get reset to 0. | ||||
| 
 | ||||
|  Adding new type ISCSI_UINT feild to fix this issue. | ||||
| 
 | ||||
| Signed-off-by: John Soni Jose <sony.john-n@emulex.com> | ||||
| Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@emulex.com> | ||||
| ---
 | ||||
|  usr/initiator_common.c | 2 +- | ||||
|  usr/iscsi_ipc.h        | 1 + | ||||
|  usr/netlink.c          | 3 +++ | ||||
|  3 files changed, 5 insertions(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/usr/initiator_common.c b/usr/initiator_common.c
 | ||||
| index 109e8d7..50f8d41 100644
 | ||||
| --- a/usr/initiator_common.c
 | ||||
| +++ b/usr/initiator_common.c
 | ||||
| @@ -431,7 +431,7 @@ int iscsi_session_set_neg_params(struct iscsi_conn *conn)
 | ||||
|  		}, { | ||||
|  			.param = ISCSI_PARAM_EXP_STATSN, | ||||
|  			.value = &conn->exp_statsn, | ||||
| -			.type = ISCSI_INT,
 | ||||
| +			.type = ISCSI_UINT,
 | ||||
|  			.conn_only = 1, | ||||
|  		}, { | ||||
|  			.param = ISCSI_PARAM_TPGT, | ||||
| diff --git a/usr/iscsi_ipc.h b/usr/iscsi_ipc.h
 | ||||
| index 9d26d54..5087b5c 100644
 | ||||
| --- a/usr/iscsi_ipc.h
 | ||||
| +++ b/usr/iscsi_ipc.h
 | ||||
| @@ -30,6 +30,7 @@
 | ||||
|   | ||||
|  enum { | ||||
|  	ISCSI_INT, | ||||
| +	ISCSI_UINT,
 | ||||
|  	ISCSI_STRING, | ||||
|  }; | ||||
|   | ||||
| diff --git a/usr/netlink.c b/usr/netlink.c
 | ||||
| index 532d9ef..b0dfb03 100644
 | ||||
| --- a/usr/netlink.c
 | ||||
| +++ b/usr/netlink.c
 | ||||
| @@ -716,6 +716,9 @@ kset_param(uint64_t transport_handle, uint32_t sid, uint32_t cid,
 | ||||
|  	case ISCSI_INT: | ||||
|  		sprintf(param_str, "%d", *((int *)value)); | ||||
|  		break; | ||||
| +	case ISCSI_UINT:
 | ||||
| +		sprintf(param_str, "%u", *((unsigned int *)value));
 | ||||
| +		break;
 | ||||
|  	case ISCSI_STRING: | ||||
|  		if (!strlen(value)) | ||||
|  			return 0; | ||||
| -- 
 | ||||
| 1.9.3 | ||||
| 
 | ||||
							
								
								
									
										207
									
								
								0077-iscsid-retry-login-for-ISCSI_ERR_HOST_NOT_FOUND.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										207
									
								
								0077-iscsid-retry-login-for-ISCSI_ERR_HOST_NOT_FOUND.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,207 @@ | ||||
| From c0e509e7535372cd5d655bc5a20d3d2bae45df84 Mon Sep 17 00:00:00 2001 | ||||
| From: Mike Christie <michaelc@cs.wisc.edu> | ||||
| Date: Wed, 7 May 2014 14:38:13 -0500 | ||||
| Subject: [PATCH] iscsid: retry login for ISCSI_ERR_HOST_NOT_FOUND | ||||
| 
 | ||||
| If a driver is being loaded then the scsi_host might not yet | ||||
| be added. This has iscsid retry login if the host is not yet | ||||
| in sysfs. | ||||
| ---
 | ||||
|  usr/initiator.c | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++------ | ||||
|  1 file changed, 100 insertions(+), 11 deletions(-) | ||||
| 
 | ||||
| diff --git a/usr/initiator.c b/usr/initiator.c
 | ||||
| index 05a5b19..b4b8957 100644
 | ||||
| --- a/usr/initiator.c
 | ||||
| +++ b/usr/initiator.c
 | ||||
| @@ -55,10 +55,19 @@
 | ||||
|   | ||||
|  #define PROC_DIR "/proc" | ||||
|   | ||||
| +struct login_task_retry_info {
 | ||||
| +	actor_t retry_actor;
 | ||||
| +	queue_task_t *qtask;
 | ||||
| +	node_rec_t *rec;
 | ||||
| +	int retry_count;
 | ||||
| +};
 | ||||
| +
 | ||||
|  static void iscsi_login_timedout(void *data); | ||||
|  static int iscsi_sched_ev_context(struct iscsi_ev_context *ev_context, | ||||
|  				  struct iscsi_conn *conn, unsigned long tmo, | ||||
|  				  int event); | ||||
| +static int queue_session_login_task_retry(struct login_task_retry_info *info,
 | ||||
| +					  node_rec_t *rec, queue_task_t *qtask);
 | ||||
|   | ||||
|  static int iscsi_ev_context_alloc(iscsi_conn_t *conn) | ||||
|  { | ||||
| @@ -324,14 +333,17 @@ session_release(iscsi_session_t *session)
 | ||||
|  } | ||||
|   | ||||
|  static iscsi_session_t* | ||||
| -__session_create(node_rec_t *rec, struct iscsi_transport *t)
 | ||||
| +__session_create(node_rec_t *rec, struct iscsi_transport *t, int *rc)
 | ||||
|  { | ||||
|  	iscsi_session_t *session; | ||||
| -	int hostno, rc = 0;
 | ||||
| +	int hostno;
 | ||||
| +
 | ||||
| +	*rc = 0;
 | ||||
|   | ||||
|  	session = calloc(1, sizeof (*session)); | ||||
|  	if (session == NULL) { | ||||
|  		log_debug(1, "can not allocate memory for session"); | ||||
| +		*rc = ISCSI_ERR_NOMEM;
 | ||||
|  		return NULL; | ||||
|  	} | ||||
|  	log_debug(2, "Allocted session %p", session); | ||||
| @@ -356,8 +368,8 @@ __session_create(node_rec_t *rec, struct iscsi_transport *t)
 | ||||
|  		session->initiator_name = dconfig->initiator_name; | ||||
|  	else { | ||||
|  		log_error("No initiator name set. Cannot create session."); | ||||
| -		free(session);
 | ||||
| -		return NULL;
 | ||||
| +		*rc = ISCSI_ERR_INVAL;
 | ||||
| +		goto free_session;
 | ||||
|  	} | ||||
|   | ||||
|  	if (strlen(session->nrec.iface.alias)) | ||||
| @@ -386,8 +398,8 @@ __session_create(node_rec_t *rec, struct iscsi_transport *t)
 | ||||
|   | ||||
|  	iscsi_session_init_params(session); | ||||
|   | ||||
| -	hostno = iscsi_sysfs_get_host_no_from_hwinfo(&rec->iface, &rc);
 | ||||
| -	if (!rc) {
 | ||||
| +	hostno = iscsi_sysfs_get_host_no_from_hwinfo(&rec->iface, rc);
 | ||||
| +	if (!*rc) {
 | ||||
|  		/* | ||||
|  		 * if the netdev or mac was set, then we are going to want | ||||
|  		 * to want to bind the all the conns/eps to a specific host | ||||
| @@ -395,10 +407,18 @@ __session_create(node_rec_t *rec, struct iscsi_transport *t)
 | ||||
|  		 */ | ||||
|  		session->conn[0].bind_ep = 1; | ||||
|  		session->hostno = hostno; | ||||
| +	} else if (*rc == ISCSI_ERR_HOST_NOT_FOUND) {
 | ||||
| +		goto free_session;	
 | ||||
| +	} else {
 | ||||
| +		 *rc = 0;
 | ||||
|  	} | ||||
|   | ||||
|  	list_add_tail(&session->list, &t->sessions); | ||||
|  	return session; | ||||
| +
 | ||||
| +free_session:
 | ||||
| +	free(session);
 | ||||
| +	return NULL;
 | ||||
|  } | ||||
|   | ||||
|  static void iscsi_flush_context_pool(struct iscsi_session *session) | ||||
| @@ -1862,8 +1882,7 @@ static int session_is_running(node_rec_t *rec)
 | ||||
|  	return 0; | ||||
|  } | ||||
|   | ||||
| -int
 | ||||
| -session_login_task(node_rec_t *rec, queue_task_t *qtask)
 | ||||
| +static int __session_login_task(node_rec_t *rec, queue_task_t *qtask)
 | ||||
|  { | ||||
|  	iscsi_session_t *session; | ||||
|  	iscsi_conn_t *conn; | ||||
| @@ -1930,8 +1949,10 @@ session_login_task(node_rec_t *rec, queue_task_t *qtask)
 | ||||
|  		rec->conn[0].iscsi.OFMarker = 0; | ||||
|  	} | ||||
|   | ||||
| -	session = __session_create(rec, t);
 | ||||
| -	if (!session)
 | ||||
| +	session = __session_create(rec, t, &rc);
 | ||||
| +	if (rc == ISCSI_ERR_HOST_NOT_FOUND)
 | ||||
| +		return rc;
 | ||||
| +	else if (!session)
 | ||||
|  		return ISCSI_ERR_LOGIN; | ||||
|   | ||||
|  	/* FIXME: login all connections! marked as "automatic" */ | ||||
| @@ -1979,6 +2000,74 @@ session_login_task(node_rec_t *rec, queue_task_t *qtask)
 | ||||
|  	return ISCSI_SUCCESS; | ||||
|  } | ||||
|   | ||||
| +int
 | ||||
| +session_login_task(node_rec_t *rec, queue_task_t *qtask)
 | ||||
| +{
 | ||||
| +	int rc;
 | ||||
| +
 | ||||
| +	rc = __session_login_task(rec, qtask);
 | ||||
| +	if (rc == ISCSI_ERR_HOST_NOT_FOUND) {
 | ||||
| +		rc = queue_session_login_task_retry(NULL, rec, qtask);
 | ||||
| +		if (rc)
 | ||||
| +			return rc;
 | ||||
| +		/*
 | ||||
| +		 * we are going to internally retry. Will return final rc
 | ||||
| +		 * when completed
 | ||||
| +		 */
 | ||||
| +		return ISCSI_SUCCESS;
 | ||||
| +	}
 | ||||
| +	return rc;
 | ||||
| +}
 | ||||
| +
 | ||||
| +static void session_login_task_retry(void *data)
 | ||||
| +{
 | ||||
| +	struct login_task_retry_info *info = data;
 | ||||
| +	int rc;
 | ||||
| +
 | ||||
| +	rc = __session_login_task(info->rec, info->qtask);
 | ||||
| +	if (rc == ISCSI_ERR_HOST_NOT_FOUND) {
 | ||||
| +		if (info->retry_count == 5) {
 | ||||
| +			/* give up */
 | ||||
| +			goto write_rsp;
 | ||||
| +		}
 | ||||
| +
 | ||||
| +		rc = queue_session_login_task_retry(info, info->rec,
 | ||||
| +						    info->qtask);
 | ||||
| +		if (rc)
 | ||||
| +			goto write_rsp;
 | ||||
| +		/* we are going to internally retry */
 | ||||
| +		return;
 | ||||
| +	} else if (rc) {
 | ||||
| +		/* hard error - no retry */
 | ||||
| +		goto write_rsp;
 | ||||
| +	} else
 | ||||
| +		/* successfully started login operation */
 | ||||
| +		goto free;
 | ||||
| +write_rsp:
 | ||||
| +	mgmt_ipc_write_rsp(info->qtask, rc);
 | ||||
| +free:
 | ||||
| +	free(info);
 | ||||
| +}
 | ||||
| +
 | ||||
| +static int queue_session_login_task_retry(struct login_task_retry_info *info,
 | ||||
| +					  node_rec_t *rec, queue_task_t *qtask)
 | ||||
| +{
 | ||||
| +	if (!info) {
 | ||||
| +		info = malloc(sizeof(*info));
 | ||||
| +		if (!info)
 | ||||
| +			return ISCSI_ERR_NOMEM;
 | ||||
| +		memset(info, 0, sizeof(*info));
 | ||||
| +		info->qtask = qtask;
 | ||||
| +		info->rec = rec;
 | ||||
| +	}
 | ||||
| +
 | ||||
| +	info->retry_count++;
 | ||||
| +	log_debug(4, "queue session setup attempt in %d secs, retries %d\n",
 | ||||
| +		  3, info->retry_count);
 | ||||
| +	actor_timer(&info->retry_actor, 3000, session_login_task_retry, info);
 | ||||
| +	return 0;
 | ||||
| +}
 | ||||
| +
 | ||||
|  static int | ||||
|  sync_conn(iscsi_session_t *session, uint32_t cid) | ||||
|  { | ||||
| @@ -2006,7 +2095,7 @@ iscsi_sync_session(node_rec_t *rec, queue_task_t *qtask, uint32_t sid)
 | ||||
|  	if (!t) | ||||
|  		return ISCSI_ERR_TRANS_NOT_FOUND; | ||||
|   | ||||
| -	session = __session_create(rec, t);
 | ||||
| +	session = __session_create(rec, t, &err);
 | ||||
|  	if (!session) | ||||
|  		return ISCSI_ERR_LOGIN; | ||||
|   | ||||
| -- 
 | ||||
| 1.9.3 | ||||
| 
 | ||||
							
								
								
									
										28
									
								
								0078-iscsid-Fix-double-close-of-mgmt-ipc-fd.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								0078-iscsid-Fix-double-close-of-mgmt-ipc-fd.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | ||||
| From 134f8dcbcdd76bf2418c64de1b4e3dca6163773d Mon Sep 17 00:00:00 2001 | ||||
| From: Duane Northcutt <jduanen@yahoo.com> | ||||
| Date: Wed, 14 May 2014 11:23:23 -0700 | ||||
| Subject: [PATCH] iscsid: Fix double close of mgmt ipc fd | ||||
| 
 | ||||
| Ran into a problem where iscsiadm was closing an already closed fd | ||||
| (returning EBADF. Seems like the close() in line 466 is redundant as | ||||
| it is done in mgmt_ipc_destroy_queue_task(). Could also assign | ||||
| qtask->mgmt_ipc_fd to NULL, but it seems better to do it this way. | ||||
| ---
 | ||||
|  usr/mgmt_ipc.c | 1 - | ||||
|  1 file changed, 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/usr/mgmt_ipc.c b/usr/mgmt_ipc.c
 | ||||
| index a82c063..ee037d9 100644
 | ||||
| --- a/usr/mgmt_ipc.c
 | ||||
| +++ b/usr/mgmt_ipc.c
 | ||||
| @@ -463,7 +463,6 @@ mgmt_ipc_write_rsp(queue_task_t *qtask, int err)
 | ||||
|  	qtask->rsp.err = err; | ||||
|  	if (write(qtask->mgmt_ipc_fd, &qtask->rsp, sizeof(qtask->rsp)) < 0) | ||||
|  		log_error("IPC qtask write failed: %s", strerror(errno)); | ||||
| -	close(qtask->mgmt_ipc_fd);
 | ||||
|  	mgmt_ipc_destroy_queue_task(qtask); | ||||
|  } | ||||
|   | ||||
| -- 
 | ||||
| 1.9.3 | ||||
| 
 | ||||
| @ -0,0 +1,27 @@ | ||||
| From 5762ac0a9520d10e727b539403eacb7ab092e45f Mon Sep 17 00:00:00 2001 | ||||
| From: Manish Rangankar <manish.rangankar@qlogic.com> | ||||
| Date: Thu, 17 Jul 2014 05:27:20 -0400 | ||||
| Subject: [PATCH] iscsiadm: Initialize param_count in set_host_chap_info | ||||
| 
 | ||||
| Signed-off-by: Manish Rangankar <manish.rangankar@qlogic.com> | ||||
| Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com> | ||||
| ---
 | ||||
|  usr/iscsiadm.c | 2 +- | ||||
|  1 file changed, 1 insertion(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/usr/iscsiadm.c b/usr/iscsiadm.c
 | ||||
| index 389f4b8..f886d39 100644
 | ||||
| --- a/usr/iscsiadm.c
 | ||||
| +++ b/usr/iscsiadm.c
 | ||||
| @@ -1503,7 +1503,7 @@ static int set_host_chap_info(uint32_t host_no, uint64_t chap_index,
 | ||||
|  	struct iovec *iovs = NULL; | ||||
|  	struct iovec *iov = NULL; | ||||
|  	int type; | ||||
| -	int param_count;
 | ||||
| +	int param_count = 0;
 | ||||
|  	int param_used; | ||||
|  	int rc = 0; | ||||
|  	int fd, i = 0; | ||||
| -- 
 | ||||
| 1.9.3 | ||||
| 
 | ||||
							
								
								
									
										100
									
								
								0081-iscsiadm-make-iface.ipaddress-optional-in-iface-conf.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								0081-iscsiadm-make-iface.ipaddress-optional-in-iface-conf.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,100 @@ | ||||
| From 96eaaacaeac39625508e6ec8022bb5e565c36a7c Mon Sep 17 00:00:00 2001 | ||||
| From: Anish Bhatt <anish@chelsio.com> | ||||
| Date: Fri, 25 Jul 2014 12:42:27 -0700 | ||||
| Subject: [PATCH] iscsiadm : make iface.ipaddress optional in iface configs for | ||||
|  transports that don't have a hard requirement on it. | ||||
| 
 | ||||
| v2: cxgb4i changed to NOT_REQ as set ipaddress is not supported | ||||
| Signed-off-by: Anish Bhatt <anish@chelsio.com> | ||||
| ---
 | ||||
|  usr/initiator_common.c | 15 ++++++++++++--- | ||||
|  usr/transport.c        |  8 ++++---- | ||||
|  usr/transport.h        |  6 ++++++ | ||||
|  3 files changed, 22 insertions(+), 7 deletions(-) | ||||
| 
 | ||||
| diff --git a/usr/initiator_common.c b/usr/initiator_common.c
 | ||||
| index 50f8d41..8ff993d 100644
 | ||||
| --- a/usr/initiator_common.c
 | ||||
| +++ b/usr/initiator_common.c
 | ||||
| @@ -685,9 +685,18 @@ int iscsi_host_set_net_params(struct iface_rec *iface,
 | ||||
|   | ||||
|  	/* if we need to set the ip addr then set all the iface net settings */ | ||||
|  	if (!iface_is_bound_by_ipaddr(iface)) { | ||||
| -		log_warning("Please set the iface.ipaddress for iface %s, "
 | ||||
| -			    "then retry the login command.\n", iface->name);
 | ||||
| -		return EINVAL;
 | ||||
| +		if (t->template->set_host_ip == SET_HOST_IP_REQ) {
 | ||||
| +			log_warning("Please set the iface.ipaddress for iface "
 | ||||
| +				    "%s, then retry the login command.\n",
 | ||||
| +				    iface->name);
 | ||||
| +			return EINVAL;
 | ||||
| +		} else if (t->template->set_host_ip == SET_HOST_IP_OPT) {
 | ||||
| +			log_info("Optional iface.ipaddress for iface %s "
 | ||||
| +				 "not set.\n", iface->name);
 | ||||
| +			return 0;
 | ||||
| +		} else {
 | ||||
| +			return EINVAL;
 | ||||
| +		}
 | ||||
|  	} | ||||
|   | ||||
|  	/* these type of drivers need the netdev upd */ | ||||
| diff --git a/usr/transport.c b/usr/transport.c
 | ||||
| index 2f38519..630f163 100644
 | ||||
| --- a/usr/transport.c
 | ||||
| +++ b/usr/transport.c
 | ||||
| @@ -58,7 +58,7 @@ struct iscsi_transport_template iscsi_iser = {
 | ||||
|   | ||||
|  struct iscsi_transport_template cxgb3i = { | ||||
|  	.name		= "cxgb3i", | ||||
| -	.set_host_ip	= 1,
 | ||||
| +	.set_host_ip	= SET_HOST_IP_OPT,
 | ||||
|  	.ep_connect	= ktransport_ep_connect, | ||||
|  	.ep_poll	= ktransport_ep_poll, | ||||
|  	.ep_disconnect	= ktransport_ep_disconnect, | ||||
| @@ -67,7 +67,7 @@ struct iscsi_transport_template cxgb3i = {
 | ||||
|   | ||||
|  struct iscsi_transport_template cxgb4i = { | ||||
|  	.name		= "cxgb4i", | ||||
| -	.set_host_ip	= 1,
 | ||||
| +	.set_host_ip	= SET_HOST_IP_NOT_REQ,
 | ||||
|  	.ep_connect	= ktransport_ep_connect, | ||||
|  	.ep_poll	= ktransport_ep_poll, | ||||
|  	.ep_disconnect	= ktransport_ep_disconnect, | ||||
| @@ -76,7 +76,7 @@ struct iscsi_transport_template cxgb4i = {
 | ||||
|   | ||||
|  struct iscsi_transport_template bnx2i = { | ||||
|  	.name		= "bnx2i", | ||||
| -	.set_host_ip	= 1,
 | ||||
| +	.set_host_ip	= SET_HOST_IP_REQ,
 | ||||
|  	.use_boot_info	= 1, | ||||
|  	.ep_connect	= ktransport_ep_connect, | ||||
|  	.ep_poll	= ktransport_ep_poll, | ||||
| @@ -94,7 +94,7 @@ struct iscsi_transport_template be2iscsi = {
 | ||||
|   | ||||
|  struct iscsi_transport_template qla4xxx = { | ||||
|  	.name		= "qla4xxx", | ||||
| -	.set_host_ip	= 0,
 | ||||
| +	.set_host_ip	= SET_HOST_IP_NOT_REQ,
 | ||||
|  	.ep_connect	= ktransport_ep_connect, | ||||
|  	.ep_poll	= ktransport_ep_poll, | ||||
|  	.ep_disconnect	= ktransport_ep_disconnect, | ||||
| diff --git a/usr/transport.h b/usr/transport.h
 | ||||
| index 388e4b1..73041fa 100644
 | ||||
| --- a/usr/transport.h
 | ||||
| +++ b/usr/transport.h
 | ||||
| @@ -20,6 +20,12 @@
 | ||||
|  #include "types.h" | ||||
|  #include "config.h" | ||||
|   | ||||
| +enum set_host_ip_opts {
 | ||||
| +	SET_HOST_IP_NOT_REQ,	/* iface.ipaddress is not supported	*/
 | ||||
| +	SET_HOST_IP_REQ,	/* iface.ipaddress must be specified	*/
 | ||||
| +	SET_HOST_IP_OPT,	/* iface.ipaddress is not required	*/
 | ||||
| +};
 | ||||
| +
 | ||||
|  struct iscsi_transport; | ||||
|  struct iscsi_conn; | ||||
|   | ||||
| -- 
 | ||||
| 1.9.3 | ||||
| 
 | ||||
							
								
								
									
										33
									
								
								0082-Remove-unused-variable-path.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								0082-Remove-unused-variable-path.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,33 @@ | ||||
| From 21a7923de5b2f968643c2ffd96e5c9fb1b201fa3 Mon Sep 17 00:00:00 2001 | ||||
| From: Hannes Reinecke <hare@suse.de> | ||||
| Date: Tue, 1 Jul 2014 11:14:26 +0200 | ||||
| Subject: [PATCH] Remove unused variable 'path' | ||||
| 
 | ||||
| Signed-off-by: Hannes Reinecke <hare@suse.de> | ||||
| ---
 | ||||
|  usr/sysfs.c | 2 -- | ||||
|  1 file changed, 2 deletions(-) | ||||
| 
 | ||||
| diff --git a/usr/sysfs.c b/usr/sysfs.c
 | ||||
| index 7f31c1a..d00c925 100644
 | ||||
| --- a/usr/sysfs.c
 | ||||
| +++ b/usr/sysfs.c
 | ||||
| @@ -671,7 +671,6 @@ int sysfs_set_param(char *id, char *subsys, char *attr_name,
 | ||||
|  	char devpath[PATH_SIZE]; | ||||
|  	size_t sysfs_len; | ||||
|  	char path_full[PATH_SIZE]; | ||||
| -	const char *path;
 | ||||
|  	int rc = 0, fd; | ||||
|   | ||||
|  	if (!sysfs_lookup_devpath_by_subsys_id(devpath, sizeof(devpath), | ||||
| @@ -684,7 +683,6 @@ int sysfs_set_param(char *id, char *subsys, char *attr_name,
 | ||||
|  	sysfs_len = strlcpy(path_full, sysfs_path, sizeof(path_full)); | ||||
|  	if(sysfs_len >= sizeof(path_full)) | ||||
|  		sysfs_len = sizeof(path_full) - 1; | ||||
| -	path = &path_full[sysfs_len];
 | ||||
|  	strlcat(path_full, devpath, sizeof(path_full)); | ||||
|  	strlcat(path_full, "/", sizeof(path_full)); | ||||
|  	strlcat(path_full, attr_name, sizeof(path_full)); | ||||
| -- 
 | ||||
| 1.9.3 | ||||
| 
 | ||||
							
								
								
									
										81
									
								
								0083-Parse-origin-value-from-iBFT.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								0083-Parse-origin-value-from-iBFT.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,81 @@ | ||||
| From 78e24f50ab754f35f4aa208ade7c9fd794d82036 Mon Sep 17 00:00:00 2001 | ||||
| From: Hannes Reinecke <hare@suse.de> | ||||
| Date: Tue, 1 Jul 2014 11:14:57 +0200 | ||||
| Subject: [PATCH] Parse 'origin' value from iBFT | ||||
| 
 | ||||
| iBFT has an 'origin' field which indicates the origin of the | ||||
| network address. If that is set to '3' it indicates that | ||||
| DHCP has been used; there is no need to evaluate the 'dhcp' | ||||
| field here. | ||||
| In fact. latest iPXE sets the 'origin' field, but not the | ||||
| 'dhcp' field. | ||||
| 
 | ||||
| Signed-off-by: Hannes Reinecke <hare@suse.de> | ||||
| ---
 | ||||
|  include/fw_context.h                    | 1 + | ||||
|  utils/fwparam_ibft/fw_entry.c           | 8 +++++--- | ||||
|  utils/fwparam_ibft/fwparam_ibft_sysfs.c | 2 ++ | ||||
|  utils/fwparam_ibft/fwparam_sysfs.c      | 2 ++ | ||||
|  4 files changed, 10 insertions(+), 3 deletions(-) | ||||
| 
 | ||||
| diff --git a/include/fw_context.h b/include/fw_context.h
 | ||||
| index 6563d68..295b54d 100644
 | ||||
| --- a/include/fw_context.h
 | ||||
| +++ b/include/fw_context.h
 | ||||
| @@ -48,6 +48,7 @@ struct boot_context {
 | ||||
|  	char initiatorname[TARGET_NAME_MAXLEN + 1]; | ||||
|   | ||||
|  	/* network settings */ | ||||
| +	char origin[2];
 | ||||
|  	char dhcp[NI_MAXHOST]; | ||||
|  	char iface[IF_NAMESIZE]; | ||||
|  	char mac[18]; | ||||
| diff --git a/utils/fwparam_ibft/fw_entry.c b/utils/fwparam_ibft/fw_entry.c
 | ||||
| index b6f05c1..295e905 100644
 | ||||
| --- a/utils/fwparam_ibft/fw_entry.c
 | ||||
| +++ b/utils/fwparam_ibft/fw_entry.c
 | ||||
| @@ -192,10 +192,12 @@ static void dump_network(struct boot_context *context)
 | ||||
|  	if (strlen(context->mac)) | ||||
|  		printf("%s = %s\n", IFACE_HWADDR, context->mac); | ||||
|  	/* | ||||
| -	 * If this has a valid address then DHCP was used (broadcom sends
 | ||||
| -	 * 0.0.0.0).
 | ||||
| +	 * If the 'origin' field is '3' then DHCP is used.
 | ||||
| +	 * Otherwise evaluate the 'dhcp' field, if this has a valid
 | ||||
| +	 * address then DHCP was used (broadcom sends 0.0.0.0).
 | ||||
|  	 */ | ||||
| -	if (strlen(context->dhcp) && strcmp(context->dhcp, "0.0.0.0"))
 | ||||
| +	if ((strlen(context->origin) && !strcmp(context->origin, "3")) ||
 | ||||
| +	    (strlen(context->dhcp) && strcmp(context->dhcp, "0.0.0.0")))
 | ||||
|  		printf("%s = DHCP\n", IFACE_BOOT_PROTO); | ||||
|  	else | ||||
|  		printf("%s = STATIC\n", IFACE_BOOT_PROTO); | ||||
| diff --git a/utils/fwparam_ibft/fwparam_ibft_sysfs.c b/utils/fwparam_ibft/fwparam_ibft_sysfs.c
 | ||||
| index 9185c85..2dc6f6d 100644
 | ||||
| --- a/utils/fwparam_ibft/fwparam_ibft_sysfs.c
 | ||||
| +++ b/utils/fwparam_ibft/fwparam_ibft_sysfs.c
 | ||||
| @@ -201,6 +201,8 @@ static int fill_nic_context(char *id, struct boot_context *context)
 | ||||
|  		      sizeof(context->secondary_dns)); | ||||
|  	sysfs_get_str(id, IBFT_SUBSYS, "dhcp", context->dhcp, | ||||
|  		      sizeof(context->dhcp)); | ||||
| +	sysfs_get_str(id, IBFT_SUBSYS, "origin", context->origin,
 | ||||
| +		      sizeof(context->origin));
 | ||||
|  	return 0; | ||||
|  } | ||||
|   | ||||
| diff --git a/utils/fwparam_ibft/fwparam_sysfs.c b/utils/fwparam_ibft/fwparam_sysfs.c
 | ||||
| index 2f37b59..09dd9fd 100644
 | ||||
| --- a/utils/fwparam_ibft/fwparam_sysfs.c
 | ||||
| +++ b/utils/fwparam_ibft/fwparam_sysfs.c
 | ||||
| @@ -217,6 +217,8 @@ static int fill_nic_context(char *subsys, char *id,
 | ||||
|  		      sizeof(context->secondary_dns)); | ||||
|  	sysfs_get_str(id, subsys, "dhcp", context->dhcp, | ||||
|  		      sizeof(context->dhcp)); | ||||
| +	sysfs_get_str(id, subsys, "origin", context->origin,
 | ||||
| +		      sizeof(context->origin));
 | ||||
|  	return 0; | ||||
|  } | ||||
|   | ||||
| -- 
 | ||||
| 1.9.3 | ||||
| 
 | ||||
							
								
								
									
										63
									
								
								0084-isns-Add-docs-for-deregistering-discovery-domains.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								0084-isns-Add-docs-for-deregistering-discovery-domains.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,63 @@ | ||||
| From c9d830bcd05af46df5345476a99f3086094cf44c Mon Sep 17 00:00:00 2001 | ||||
| From: Lee Duncan <lduncan@suse.com> | ||||
| Date: Thu, 4 Sep 2014 10:01:53 -0700 | ||||
| Subject: [PATCH] isns: Add docs for deregistering discovery domains. | ||||
| 
 | ||||
| Without this update to the isnsadm help message and | ||||
| man page, it can be difficult to figure out how to | ||||
| deregister a registered discovery domain. | ||||
| ---
 | ||||
|  utils/open-isns/doc/isnsadm.8 | 16 ++++++++++++++++ | ||||
|  utils/open-isns/isnsadm.c     |  2 ++ | ||||
|  2 files changed, 18 insertions(+) | ||||
| 
 | ||||
| diff --git a/utils/open-isns/doc/isnsadm.8 b/utils/open-isns/doc/isnsadm.8
 | ||||
| index c3e2b83..88ec4cf 100644
 | ||||
| --- a/utils/open-isns/doc/isnsadm.8
 | ||||
| +++ b/utils/open-isns/doc/isnsadm.8
 | ||||
| @@ -25,6 +25,10 @@ isnsadm \- iSNS client utility
 | ||||
|  .PP | ||||
|  .B isnsadm | ||||
|  .RB [ ... ] | ||||
| +.RI --dd-deregister " dd-id attr=value
 | ||||
| +.PP
 | ||||
| +.B isnsadm
 | ||||
| +.RB [ ... ]
 | ||||
|  .RI --enroll " client-name attr=value | ||||
|  .PP | ||||
|  .B isnsadm | ||||
| @@ -452,6 +456,18 @@ Note, in order to add members to an existing domain, you must
 | ||||
|  specify the domain's numeric ID. The domain's symbolic name | ||||
|  is not a valid handle when referring to a discovery domain. | ||||
|  .\"--------------------------- | ||||
| +.SS Discovery Domain Deregistration mode
 | ||||
| +In this mode, you can deregister a discoery domain previously registered.
 | ||||
| +Only the node which registered a discovery domain in the first place is
 | ||||
| +permitted to remove it, or any of its members. (Control
 | ||||
| +nodes are not bound by this restriction).
 | ||||
| +.PP
 | ||||
| +In Discovery Domain deregistration mode, the argument list consists of
 | ||||
| +the Discovery Domain ID, followed by a list of
 | ||||
| +.IB attr = value
 | ||||
| +pairs. Discovery Domain Deregistration supports the same set of attributes as
 | ||||
| +query mode.
 | ||||
| +.\"---------------------------
 | ||||
|  .SS Client Enrollment | ||||
|  This mode only works when the server recognizes the client | ||||
|  as having control node capabilities, which is possible in | ||||
| diff --git a/utils/open-isns/isnsadm.c b/utils/open-isns/isnsadm.c
 | ||||
| index fadd87d..db34f8f 100644
 | ||||
| --- a/utils/open-isns/isnsadm.c
 | ||||
| +++ b/utils/open-isns/isnsadm.c
 | ||||
| @@ -272,6 +272,8 @@ usage(int exval, const char *msg)
 | ||||
|  	"\nThe following actions are supported:\n" | ||||
|  	"  --register      Register one or more objects\n" | ||||
|  	"  --deregister    Deregister an object (and children)\n" | ||||
| +	"  --dd-register   Register a Discovery Domain (and members)\n"
 | ||||
| +	"  --dd-deregister Deregister a Discovery Domain (and members)\n"
 | ||||
|  	"  --query         Query iSNS server for objects\n" | ||||
|  	"  --list          List all objects of a given type\n" | ||||
|  	"  --enroll        Create a new policy object for a client\n" | ||||
| -- 
 | ||||
| 1.9.3 | ||||
| 
 | ||||
							
								
								
									
										36
									
								
								0140-add-discovery-as-a-valid-mode-in-iscsiadm.8.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								0140-add-discovery-as-a-valid-mode-in-iscsiadm.8.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,36 @@ | ||||
| From f6e152e735231fe5cb1075b6d1c27ed1b248bdbd Mon Sep 17 00:00:00 2001 | ||||
| From: Chris Leech <cleech@redhat.com> | ||||
| Date: Wed, 24 Sep 2014 15:35:24 -0700 | ||||
| Subject: [PATCH] add discovery as a valid mode in iscsiadm.8 | ||||
| 
 | ||||
| ---
 | ||||
|  doc/iscsiadm.8 | 12 ++++++------ | ||||
|  1 file changed, 6 insertions(+), 6 deletions(-) | ||||
| 
 | ||||
| diff --git a/doc/iscsiadm.8 b/doc/iscsiadm.8
 | ||||
| index 9a945d1..05793b2 100644
 | ||||
| --- a/doc/iscsiadm.8
 | ||||
| +++ b/doc/iscsiadm.8
 | ||||
| @@ -174,13 +174,13 @@ for session mode).
 | ||||
|  .TP | ||||
|  \fB\-m, \-\-mode \fIop\fR | ||||
|  specify the mode. \fIop\fR | ||||
| -must be one of \fIdiscoverydb\fR, \fInode\fR, \fIfw\fR, \fIhost\fR \fIiface\fR or \fIsession\fR.
 | ||||
| +must be one of \fIdiscovery\fR, \fIdiscoverydb\fR, \fInode\fR, \fIfw\fR, \fIhost\fR \fIiface\fR or \fIsession\fR.
 | ||||
|  .IP | ||||
| -If no other options are specified: for \fIdiscoverydb\fR and \fInode\fR, all
 | ||||
| -of their respective records are displayed; for \fIsession\fR, all active
 | ||||
| -sessions and connections are displayed; for \fIfw\fR, all boot firmware
 | ||||
| -values are displayed; for \fIhost\fR, all iSCSI hosts are displayed; and
 | ||||
| -for \fIiface\fR, all ifaces setup in /etc/iscsi/ifaces are displayed.
 | ||||
| +If no other options are specified: for \fIdiscovery\fR, \fIdiscoverydb\fR and
 | ||||
| +\fInode\fR, all of their respective records are displayed; for \fIsession\fR,
 | ||||
| +all active sessions and connections are displayed; for \fIfw\fR, all boot
 | ||||
| +firmware values are displayed; for \fIhost\fR, all iSCSI hosts are displayed;
 | ||||
| +and for \fIiface\fR, all ifaces setup in /etc/iscsi/ifaces are displayed.
 | ||||
|   | ||||
|  .TP | ||||
|  \fB\-n\fR, \fB\-\-name=\fIname\fR | ||||
| -- 
 | ||||
| 1.9.3 | ||||
| 
 | ||||
| @ -1,4 +1,4 @@ | ||||
| From be8702e609fdfd417547f758cb88956066b63023 Mon Sep 17 00:00:00 2001 | ||||
| From 8c287d6b8c1edf51c2f91878d72822d33aa8348b Mon Sep 17 00:00:00 2001 | ||||
| From: Chris Leech <cleech@redhat.com> | ||||
| Date: Mon, 19 Nov 2012 16:38:45 -0800 | ||||
| Subject: use var for config | ||||
| @ -12,7 +12,7 @@ Subject: use var for config | ||||
|  5 files changed, 33 insertions(+), 31 deletions(-) | ||||
| 
 | ||||
| diff --git a/README b/README
 | ||||
| index 90e2074..9cc62ca 100644
 | ||||
| index 0ac4529..e7c7bf5 100644
 | ||||
| --- a/README
 | ||||
| +++ b/README
 | ||||
| @@ -156,8 +156,7 @@ Usage: iscsid [OPTION]
 | ||||
| @ -25,7 +25,7 @@ index 90e2074..9cc62ca 100644 | ||||
|   | ||||
|  Configuration is contained in directories for: | ||||
|   | ||||
| @@ -467,7 +466,7 @@ a scsi_host per HBA port).
 | ||||
| @@ -475,7 +474,7 @@ a scsi_host per HBA port).
 | ||||
|  To manage both types of initiator stacks, iscsiadm uses the interface (iface) | ||||
|  structure. For each HBA port or for software iscsi for each network | ||||
|  device (ethX) or NIC, that you wish to bind sessions to you must create | ||||
| @ -34,7 +34,7 @@ index 90e2074..9cc62ca 100644 | ||||
|   | ||||
|  Prep: | ||||
|   | ||||
| @@ -501,29 +500,29 @@ Running:
 | ||||
| @@ -509,29 +508,29 @@ Running:
 | ||||
|  iface0 qla4xxx,00:c0:dd:08:63:e8,20.15.0.7,default,iqn.2005-06.com.redhat:madmax | ||||
|  iface1 qla4xxx,00:c0:dd:08:63:ea,20.15.0.9,default,iqn.2005-06.com.redhat:madmax | ||||
|   | ||||
| @ -69,7 +69,7 @@ index 90e2074..9cc62ca 100644 | ||||
|   | ||||
|  iface.transport_name = tcp | ||||
|  iface.hwaddress = 00:C0:DD:08:63:E7 | ||||
| @@ -573,7 +572,7 @@ cxgb3i.00:07:43:05:97:07 cxgb3i,00:07:43:05:97:07,<empty>,<empty>,<empty>
 | ||||
| @@ -581,7 +580,7 @@ cxgb3i.00:07:43:05:97:07 cxgb3i,00:07:43:05:97:07,<empty>,<empty>,<empty>
 | ||||
|  qla4xxx.00:0e:1e:04:8b:2e qla4xxx,00:0e:1e:04:8b:2e,<empty>,<empty>,<empty> | ||||
|   | ||||
|   | ||||
| @ -78,7 +78,7 @@ index 90e2074..9cc62ca 100644 | ||||
|  The format is: | ||||
|   | ||||
|  iface_name transport_name,hwaddress,ipaddress,net_ifacename,initiatorname | ||||
| @@ -659,7 +658,7 @@ need a seperate network connection to the target for discovery purposes.
 | ||||
| @@ -667,7 +666,7 @@ need a seperate network connection to the target for discovery purposes.
 | ||||
|  *This will be fixed in the next version of open-iscsi* | ||||
|   | ||||
|  For compatibility reasons, when you run iscsiadm to do discovery, it | ||||
| @ -87,7 +87,7 @@ index 90e2074..9cc62ca 100644 | ||||
|  tcp for the iface.transport and it will bind the portals that are discovered | ||||
|  so that they will be logged in through those ifaces. This behavior can also | ||||
|  be overriden by passing in the interfaces you want to use. For the case | ||||
| @@ -677,7 +676,7 @@ we do not bind a session to a iface, then you can use the special iface
 | ||||
| @@ -685,7 +684,7 @@ we do not bind a session to a iface, then you can use the special iface
 | ||||
|   | ||||
|  iscsiadm -m discoverydb -t st -p ip:port -I default --discover -P 1 | ||||
|   | ||||
| @ -96,7 +96,7 @@ index 90e2074..9cc62ca 100644 | ||||
|  not pass anything into iscsiadm, running iscsiadm will do the default | ||||
|  behavior, where we allow the network subsystem to decide which | ||||
|  device to use. | ||||
| @@ -719,7 +718,7 @@ To now log into targets it is the same as with sofware iscsi. See section
 | ||||
| @@ -727,7 +726,7 @@ To now log into targets it is the same as with sofware iscsi. See section
 | ||||
|   | ||||
|  	    ./iscsiadm -m discoverydb -t st -p 192.168.1.1:3260 --discover | ||||
|   | ||||
| @ -105,7 +105,7 @@ index 90e2074..9cc62ca 100644 | ||||
|  	ID [portal = 192.168.1.1:3260 and type = sendtargets. If found it | ||||
|  	will perform discovery using the settings stored in the record. | ||||
|  	If a record does not exist, it will be created using the iscsid.conf | ||||
| @@ -728,7 +727,7 @@ To now log into targets it is the same as with sofware iscsi. See section
 | ||||
| @@ -736,7 +735,7 @@ To now log into targets it is the same as with sofware iscsi. See section
 | ||||
|  	The argument to -p may also be a hostname instead of an address. | ||||
|  	    ./iscsiadm -m discoverydb -t st -p smoehost --discover | ||||
|   | ||||
| @ -114,7 +114,7 @@ index 90e2074..9cc62ca 100644 | ||||
|  	interfaces using software iscsi. If any are found then nodes found | ||||
|  	during discovery will be setup so that they can logged in through | ||||
|  	those interfaces. To specify a specific iface, pass the | ||||
| @@ -784,7 +783,7 @@ To now log into targets it is the same as with sofware iscsi. See section
 | ||||
| @@ -792,7 +791,7 @@ To now log into targets it is the same as with sofware iscsi. See section
 | ||||
|  	This command will perform discovery, but not manipulate the node DB. | ||||
|   | ||||
|    - SendTargets iSCSI Discovery with a specific interface. If you | ||||
| @ -123,7 +123,7 @@ index 90e2074..9cc62ca 100644 | ||||
|  	then you can pass them in during discovery: | ||||
|   | ||||
|  	     ./iscsiadm -m discoverydb -t sendtargets -p 192.168.1.1:3260 \ | ||||
| @@ -1145,8 +1144,8 @@ where targetname is the name of the target and ip_address:port is the address
 | ||||
| @@ -1193,8 +1192,8 @@ where targetname is the name of the target and ip_address:port is the address
 | ||||
|  and port of the portal. tpgt, is the portal group tag of | ||||
|  the portal, and is not used in iscsiadm commands except for static | ||||
|  record creation. And iface name is the name of the iscsi interface | ||||
| @ -134,7 +134,7 @@ index 90e2074..9cc62ca 100644 | ||||
|  Default here is iscsi_tcp/tcp to be used over which ever NIC the | ||||
|  network layer decides is best. | ||||
|   | ||||
| @@ -1261,7 +1260,7 @@ If set, iscsid will perform discovery to the address every
 | ||||
| @@ -1309,7 +1308,7 @@ If set, iscsid will perform discovery to the address every
 | ||||
|  discovery.isns.discoveryd_poll_inval or | ||||
|  discovery.sendtargets.discoveryd_poll_inval seconds, | ||||
|  and it will log into any portals found from the discovery source using | ||||
| @ -144,10 +144,10 @@ index 90e2074..9cc62ca 100644 | ||||
|  Note that for iSNS the poll_interval does not have to be set. If not set, | ||||
|  iscsid will only perform rediscovery when it gets a SCN from the server. | ||||
| diff --git a/doc/iscsiadm.8 b/doc/iscsiadm.8
 | ||||
| index 6b15fcd..30811bd 100644
 | ||||
| index 05793b2..334520a 100644
 | ||||
| --- a/doc/iscsiadm.8
 | ||||
| +++ b/doc/iscsiadm.8
 | ||||
| @@ -101,7 +101,7 @@ This option is only valid for ping submode.
 | ||||
| @@ -103,7 +103,7 @@ This option is only valid for ping submode.
 | ||||
|  .TP | ||||
|  \fB\-I\fR, \fB\-\-interface=\fI[iface]\fR | ||||
|  The interface argument specifies the iSCSI interface to use for the operation. | ||||
| @ -156,16 +156,16 @@ index 6b15fcd..30811bd 100644 | ||||
|  iSCSI (qla4xxx) the iface config must have the hardware address | ||||
|  (iface.hwaddress = port's MAC address) | ||||
|  and the driver/transport_name (iface.transport_name). The iface's name is | ||||
| @@ -178,7 +178,7 @@ If no other options are specified: for \fIdiscoverydb\fR and \fInode\fR, all
 | ||||
|  of their respective records are displayed; for \fIsession\fR, all active | ||||
|  sessions and connections are displayed; for \fIfw\fR, all boot firmware | ||||
|  values are displayed; for \fIhost\fR, all iSCSI hosts are displayed; and | ||||
| -for \fIiface\fR, all ifaces setup in /etc/iscsi/ifaces are displayed.
 | ||||
| +for \fIiface\fR, all ifaces setup in /var/lib/iscsi/ifaces are displayed.
 | ||||
| @@ -180,7 +180,7 @@ If no other options are specified: for \fIdiscovery\fR, \fIdiscoverydb\fR and
 | ||||
|  \fInode\fR, all of their respective records are displayed; for \fIsession\fR, | ||||
|  all active sessions and connections are displayed; for \fIfw\fR, all boot | ||||
|  firmware values are displayed; for \fIhost\fR, all iSCSI hosts are displayed; | ||||
| -and for \fIiface\fR, all ifaces setup in /etc/iscsi/ifaces are displayed.
 | ||||
| +and for \fIiface\fR, all ifaces setup in /var/lib/iscsi/ifaces are displayed.
 | ||||
|   | ||||
|  .TP | ||||
|  \fB\-n\fR, \fB\-\-name=\fIname\fR | ||||
| @@ -562,10 +562,10 @@ The configuration file read by \fBiscsid\fR and \fBiscsiadm\fR on startup.
 | ||||
| @@ -565,10 +565,10 @@ The configuration file read by \fBiscsid\fR and \fBiscsiadm\fR on startup.
 | ||||
|  The file containing the iSCSI InitiatorName and InitiatorAlias read by | ||||
|  \fBiscsid\fR and \fBiscsiadm\fR on startup. | ||||
|  .TP | ||||
| @ -179,10 +179,10 @@ index 6b15fcd..30811bd 100644 | ||||
|   | ||||
|  .SH "SEE ALSO" | ||||
| diff --git a/usr/idbm.c b/usr/idbm.c
 | ||||
| index 634e547..4bb9810 100644
 | ||||
| index ce9fb6a..c3c8de5 100644
 | ||||
| --- a/usr/idbm.c
 | ||||
| +++ b/usr/idbm.c
 | ||||
| @@ -2721,9 +2721,9 @@ free_info:
 | ||||
| @@ -2919,9 +2919,9 @@ free_info:
 | ||||
|  int idbm_init(idbm_get_config_file_fn *fn) | ||||
|  { | ||||
|  	/* make sure root db dir is there */ | ||||
| @ -196,7 +196,7 @@ index 634e547..4bb9810 100644 | ||||
|  			return errno; | ||||
|  		} | ||||
| diff --git a/usr/idbm.h b/usr/idbm.h
 | ||||
| index 5e4038d..1e9b132 100644
 | ||||
| index b9020fe..b89ddff 100644
 | ||||
| --- a/usr/idbm.h
 | ||||
| +++ b/usr/idbm.h
 | ||||
| @@ -29,12 +29,13 @@
 | ||||
| @ -235,5 +235,5 @@ index 01f7074..f396918 100644 | ||||
|  struct iface_rec; | ||||
|  struct list_head; | ||||
| -- 
 | ||||
| 1.8.1.4 | ||||
| 1.9.3 | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										41
									
								
								0170-fix-systemd-unit-wants.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								0170-fix-systemd-unit-wants.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,41 @@ | ||||
| From 347e6120213efda47a45443b4e366ed1400433c1 Mon Sep 17 00:00:00 2001 | ||||
| From: Chris Leech <cleech@redhat.com> | ||||
| Date: Wed, 17 Sep 2014 09:58:39 -0700 | ||||
| Subject: [PATCH] updates to iscsi.service | ||||
| 
 | ||||
| Resolves: #1126524 | ||||
| Resolves: #1111925 | ||||
| ---
 | ||||
|  etc/systemd/iscsi.service | 10 +++++----- | ||||
|  1 file changed, 5 insertions(+), 5 deletions(-) | ||||
| 
 | ||||
| diff --git a/etc/systemd/iscsi.service b/etc/systemd/iscsi.service
 | ||||
| index 3de76c5..ad7be34 100644
 | ||||
| --- a/etc/systemd/iscsi.service
 | ||||
| +++ b/etc/systemd/iscsi.service
 | ||||
| @@ -5,17 +5,17 @@ DefaultDependencies=no
 | ||||
|  Conflicts=shutdown.target | ||||
|  After=systemd-remount-fs.service network.target iscsid.service iscsiuio.service | ||||
|  Before=remote-fs-pre.target | ||||
| +Wants=remote-fs-pre.target
 | ||||
|  ConditionDirectoryNotEmpty=|/var/lib/iscsi/nodes | ||||
|  ConditionDirectoryNotEmpty=|/sys/class/iscsi_session | ||||
|   | ||||
|  [Service] | ||||
|  Type=oneshot | ||||
|  RemainAfterExit=true | ||||
| -ExecStart=/usr/libexec/iscsi-mark-root-nodes
 | ||||
| -SuccessExitStatus=21
 | ||||
| -ExecStart=/sbin/iscsiadm -m node --loginall=automatic
 | ||||
| -ExecStop=/sbin/iscsiadm -m node --logoutall=automatic
 | ||||
| -ExecReload=/sbin/iscsiadm -m node --loginall=automatic
 | ||||
| +ExecStart=-/usr/libexec/iscsi-mark-root-nodes
 | ||||
| +ExecStart=-/sbin/iscsiadm -m node --loginall=automatic
 | ||||
| +ExecStop=-/sbin/iscsiadm -m node --logoutall=automatic
 | ||||
| +ExecReload=-/sbin/iscsiadm -m node --loginall=automatic
 | ||||
|   | ||||
|  [Install] | ||||
|  WantedBy=sysinit.target | ||||
| -- 
 | ||||
| 1.9.3 | ||||
| 
 | ||||
| @ -16,7 +16,7 @@ index a090522..aef0c3d 100644 | ||||
|   * some other maintainer could merge a patch without going through us | ||||
|   */ | ||||
| -#define ISCSI_VERSION_STR	"2.0-873"
 | ||||
| +#define ISCSI_VERSION_STR	"6.2.0.873-21"
 | ||||
| +#define ISCSI_VERSION_STR	"6.2.0.873-24"
 | ||||
|  #define ISCSI_VERSION_FILE	"/sys/module/scsi_transport_iscsi/version" | ||||
|   | ||||
|  #endif | ||||
|  | ||||
| @ -1,10 +1,11 @@ | ||||
| %define open_iscsi_version	2.0 | ||||
| %define open_iscsi_build	873 | ||||
| %global open_iscsi_version	2.0 | ||||
| %global open_iscsi_build	873 | ||||
| %global checkout		c9d830b | ||||
| 
 | ||||
| Summary: iSCSI daemon and utility programs | ||||
| Name: iscsi-initiator-utils | ||||
| Version: 6.%{open_iscsi_version}.%{open_iscsi_build} | ||||
| Release: 23%{?dist} | ||||
| Release: 24.git%{checkout}%{?dist} | ||||
| Group: System Environment/Daemons | ||||
| License: GPLv2+ | ||||
| URL: http://www.open-iscsi.org | ||||
| @ -81,10 +82,21 @@ Patch64: 0064-ISCSIUIO-Removed-the-auto-generated-COPYING-file.patch | ||||
| Patch68: 0068-iscsiuio-fix-compilation.patch | ||||
| Patch69: 0069-Add-missing-DESTDIR.patch | ||||
| Patch70: 0070-iscsi-tools-set-non-negotiated-params-early.patch | ||||
| Patch71: 0071-iscsiadm-Fix-the-hostno-check-for-stats-submode-of-h.patch | ||||
| Patch72: 0072-iscsiadm-Fix-the-compile-time-warning.patch | ||||
| Patch74: 0074-iscsid-Fix-handling-of-iscsi-async-events.patch | ||||
| Patch75: 0075-be2iscsi-Fix-MaxXmitDataLenght-of-the-driver.patch | ||||
| Patch76: 0076-Fix-StatSN-in-Open-iSCSI-Stack.patch | ||||
| Patch77: 0077-iscsid-retry-login-for-ISCSI_ERR_HOST_NOT_FOUND.patch | ||||
| Patch78: 0078-iscsid-Fix-double-close-of-mgmt-ipc-fd.patch | ||||
| Patch79: 0079-iscsiadm-Initialize-param_count-in-set_host_chap_inf.patch | ||||
| Patch81: 0081-iscsiadm-make-iface.ipaddress-optional-in-iface-conf.patch | ||||
| Patch82: 0082-Remove-unused-variable-path.patch | ||||
| Patch83: 0083-Parse-origin-value-from-iBFT.patch | ||||
| Patch84: 0084-isns-Add-docs-for-deregistering-discovery-domains.patch | ||||
| 
 | ||||
| # not (yet) upstream merged | ||||
| Patch131: 0131-iscsiadm-Fix-the-hostno-check-for-stats-submode-of-h.patch | ||||
| Patch132: 0132-iscsiadm-Fix-the-compile-time-warning.patch | ||||
| Patch140: 0140-add-discovery-as-a-valid-mode-in-iscsiadm.8.patch | ||||
| Patch143: 0143-idmb_rec_write-check-for-tpgt-first.patch | ||||
| Patch145: 0145-idbm_rec_write-seperate-old-and-new-style-writes.patch | ||||
| Patch146: 0146-idbw_rec_write-pick-tpgt-from-existing-record.patch | ||||
| @ -109,6 +121,7 @@ Patch166: 0166-start-socket-listeners-on-iscsiadm-command.patch | ||||
| Patch167: 0167-Revert-iscsiadm-return-error-when-login-fails.patch | ||||
| Patch168: 0168-update-handling-of-boot-sessions.patch | ||||
| Patch169: 0169-update-iscsi.service-for-boot-session-recovery.patch | ||||
| Patch170: 0170-fix-systemd-unit-wants.patch | ||||
| # version string, needs to be updated with each build | ||||
| Patch199: 0199-use-Red-Hat-version-string-to-match-RPM-package-vers.patch | ||||
| 
 | ||||
| @ -217,9 +230,20 @@ developing applications that use %{name}. | ||||
| %patch68 -p1 | ||||
| %patch69 -p1 | ||||
| %patch70 -p1 | ||||
| %patch71 -p1 | ||||
| %patch72 -p1 | ||||
| %patch74 -p1 | ||||
| %patch75 -p1 | ||||
| %patch76 -p1 | ||||
| %patch77 -p1 | ||||
| %patch78 -p1 | ||||
| %patch79 -p1 | ||||
| %patch81 -p1 | ||||
| %patch82 -p1 | ||||
| %patch83 -p1 | ||||
| %patch84 -p1 | ||||
| # pending upstream merge | ||||
| %patch131 -p1 | ||||
| %patch132 -p1 | ||||
| %patch140 -p1 | ||||
| %patch143 -p1 | ||||
| %patch145 -p1 | ||||
| %patch146 -p1 | ||||
| @ -244,6 +268,7 @@ developing applications that use %{name}. | ||||
| %patch167 -p1 | ||||
| %patch168 -p1 | ||||
| %patch169 -p1 | ||||
| %patch170 -p1 | ||||
| # version string | ||||
| %patch199 -p1 | ||||
| 
 | ||||
| @ -259,7 +284,7 @@ cd iscsiuio | ||||
| %{configure} | ||||
| cd .. | ||||
| cd utils/open-isns | ||||
| %{configure} | ||||
| %{configure} --with-security=no | ||||
| cd ../.. | ||||
| 
 | ||||
| %{__make} OPTFLAGS="%{optflags} %{?__global_ldflags} -DUSE_KMOD -lkmod" | ||||
| @ -360,6 +385,27 @@ fi | ||||
| /bin/systemctl try-restart iscsid.service >/dev/null 2>&1 || : | ||||
| /bin/systemctl try-restart iscsi.service >/dev/null 1>&1 || : | ||||
| 
 | ||||
| %triggerun -- iscsi-initiator-utils < 6.2.0.873-24 | ||||
| # prior to 6.2.0.873-24 iscsi.service was missing a Wants=remote-fs-pre.target | ||||
| # this forces remote-fs-pre.target active if needed for a clean shutdown/reboot | ||||
| # after upgrading this package | ||||
| if [ $1 -gt 0 ]; then | ||||
|     /usr/bin/systemctl -q is-active iscsi.service | ||||
|     if [ $? -eq 0 ]; then | ||||
|         /usr/bin/systemctl -q is-active remote-fs-pre.target | ||||
|         if [ $? -ne 0 ]; then | ||||
|             SRC=`/usr/bin/systemctl show --property FragmentPath remote-fs-pre.target | cut -d= -f2` | ||||
|             DST=/run/systemd/system/remote-fs-pre.target | ||||
|             if [ $SRC != $DST ]; then | ||||
|                 cp $SRC $DST | ||||
|             fi | ||||
|             sed -i 's/RefuseManualStart=yes/RefuseManualStart=no/' $DST | ||||
|             /usr/bin/systemctl daemon-reload | ||||
|             /usr/bin/systemctl start remote-fs-pre.target | ||||
|         fi | ||||
|     fi | ||||
| fi | ||||
| 
 | ||||
| %files | ||||
| %doc README | ||||
| %dir %{_sharedstatedir}/iscsi | ||||
| @ -403,6 +449,13 @@ fi | ||||
| %{_includedir}/libiscsi.h | ||||
| 
 | ||||
| %changelog | ||||
| * Thu Oct 23 2014 Chris Leech <cleech@redhat.com> - 6.2.0.873-24.gitc9d830b | ||||
| - sync with upstream v2.0.873-84-gc9d830b | ||||
| - ignore iscsiadm return in iscsi.service | ||||
| - make sure systemd order against remote mounts is correct | ||||
| - add discovery as a valid mode in iscsiadm.8 | ||||
| - make sure to pass --with-security=no to isns configure | ||||
| 
 | ||||
| * Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.2.0.873-23 | ||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user