forked from mirrors/linux
		
	scsi: iscsi: Drop suspend calls from ep_disconnect
libiscsi will now suspend the send/tx queue for the drivers so we can drop it from the drivers ep_disconnect. Link: https://lore.kernel.org/r/20210525181821.7617-4-michael.christie@oracle.com Reviewed-by: Lee Duncan <lduncan@suse.com> Signed-off-by: Mike Christie <michael.christie@oracle.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
		
							parent
							
								
									891e2639de
								
							
						
					
					
						commit
						27e986289e
					
				
					 4 changed files with 5 additions and 16 deletions
				
			
		|  | @ -1293,7 +1293,6 @@ static int beiscsi_conn_close(struct beiscsi_endpoint *beiscsi_ep) | |||
| void beiscsi_ep_disconnect(struct iscsi_endpoint *ep) | ||||
| { | ||||
| 	struct beiscsi_endpoint *beiscsi_ep; | ||||
| 	struct beiscsi_conn *beiscsi_conn; | ||||
| 	struct beiscsi_hba *phba; | ||||
| 	uint16_t cri_index; | ||||
| 
 | ||||
|  | @ -1312,11 +1311,6 @@ void beiscsi_ep_disconnect(struct iscsi_endpoint *ep) | |||
| 		return; | ||||
| 	} | ||||
| 
 | ||||
| 	if (beiscsi_ep->conn) { | ||||
| 		beiscsi_conn = beiscsi_ep->conn; | ||||
| 		iscsi_suspend_queue(beiscsi_conn->conn); | ||||
| 	} | ||||
| 
 | ||||
| 	if (!beiscsi_hba_is_online(phba)) { | ||||
| 		beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG, | ||||
| 			    "BS_%d : HBA in error 0x%lx\n", phba->state); | ||||
|  |  | |||
|  | @ -2113,7 +2113,6 @@ static void bnx2i_ep_disconnect(struct iscsi_endpoint *ep) | |||
| { | ||||
| 	struct bnx2i_endpoint *bnx2i_ep; | ||||
| 	struct bnx2i_conn *bnx2i_conn = NULL; | ||||
| 	struct iscsi_conn *conn = NULL; | ||||
| 	struct bnx2i_hba *hba; | ||||
| 
 | ||||
| 	bnx2i_ep = ep->dd_data; | ||||
|  | @ -2126,11 +2125,8 @@ static void bnx2i_ep_disconnect(struct iscsi_endpoint *ep) | |||
| 		!time_after(jiffies, bnx2i_ep->timestamp + (12 * HZ))) | ||||
| 		msleep(250); | ||||
| 
 | ||||
| 	if (bnx2i_ep->conn) { | ||||
| 	if (bnx2i_ep->conn) | ||||
| 		bnx2i_conn = bnx2i_ep->conn; | ||||
| 		conn = bnx2i_conn->cls_conn->dd_data; | ||||
| 		iscsi_suspend_queue(conn); | ||||
| 	} | ||||
| 	hba = bnx2i_ep->hba; | ||||
| 
 | ||||
| 	mutex_lock(&hba->net_dev_lock); | ||||
|  |  | |||
|  | @ -2968,7 +2968,6 @@ void cxgbi_ep_disconnect(struct iscsi_endpoint *ep) | |||
| 		ep, cep, cconn, csk, csk->state, csk->flags); | ||||
| 
 | ||||
| 	if (cconn && cconn->iconn) { | ||||
| 		iscsi_suspend_tx(cconn->iconn); | ||||
| 		write_lock_bh(&csk->callback_lock); | ||||
| 		cep->csk->user_data = NULL; | ||||
| 		cconn->cep = NULL; | ||||
|  |  | |||
|  | @ -988,7 +988,6 @@ static void qedi_ep_disconnect(struct iscsi_endpoint *ep) | |||
| { | ||||
| 	struct qedi_endpoint *qedi_ep; | ||||
| 	struct qedi_conn *qedi_conn = NULL; | ||||
| 	struct iscsi_conn *conn = NULL; | ||||
| 	struct qedi_ctx *qedi; | ||||
| 	int ret = 0; | ||||
| 	int wait_delay; | ||||
|  | @ -1007,8 +1006,6 @@ static void qedi_ep_disconnect(struct iscsi_endpoint *ep) | |||
| 
 | ||||
| 	if (qedi_ep->conn) { | ||||
| 		qedi_conn = qedi_ep->conn; | ||||
| 		conn = qedi_conn->cls_conn->dd_data; | ||||
| 		iscsi_suspend_queue(conn); | ||||
| 		abrt_conn = qedi_conn->abrt_conn; | ||||
| 
 | ||||
| 		while (count--)	{ | ||||
|  | @ -1621,8 +1618,11 @@ void qedi_clear_session_ctx(struct iscsi_cls_session *cls_sess) | |||
| 	struct iscsi_conn *conn = session->leadconn; | ||||
| 	struct qedi_conn *qedi_conn = conn->dd_data; | ||||
| 
 | ||||
| 	if (iscsi_is_session_online(cls_sess)) | ||||
| 	if (iscsi_is_session_online(cls_sess)) { | ||||
| 		if (conn) | ||||
| 			iscsi_suspend_queue(conn); | ||||
| 		qedi_ep_disconnect(qedi_conn->iscsi_ep); | ||||
| 	} | ||||
| 
 | ||||
| 	qedi_conn_destroy(qedi_conn->cls_conn); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Mike Christie
						Mike Christie