Re: [PATCH 1/7] bnx2i: use common iscsi suspend queue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2009-11-11 at 14:34 -0800, michaelc@xxxxxxxxxxx wrote:
> From: Mike Christie <michaelc@xxxxxxxxxxx>
> 
> This just has bnx2i use the iscsi_suspend_queue helper.
> 
> The suspend works as follows:
> 
> When ep_poll has succeeed iscsid will call conn_bind, the LLD will
> then call iscsi_conn_bind which will clear the suspend bit.
> When ep_disconnect is called (or if there is a conn error) we set
> the suspend bit. For the ep_disconnect case I  added a helper
> in the previous kernel that will take the session lock to make sure
> iscsi_queuecommand/xmit_task is not running and it will set
> the suspend bit.
> 
> Signed-off-by: Mike Christie <michaelc@xxxxxxxxxxx>
> ---
>  drivers/scsi/bnx2i/bnx2i.h       |    1 -
>  drivers/scsi/bnx2i/bnx2i_iscsi.c |    8 +-------
>  2 files changed, 1 insertions(+), 8 deletions(-)
> 

Looks good.

Acked-by: Anil Veerabhadrappa <anilgv@xxxxxxxxxxxx>


> diff --git a/drivers/scsi/bnx2i/bnx2i.h b/drivers/scsi/bnx2i/bnx2i.h
> index 5edde1a..2b973f3 100644
> --- a/drivers/scsi/bnx2i/bnx2i.h
> +++ b/drivers/scsi/bnx2i/bnx2i.h
> @@ -232,7 +232,6 @@ struct bnx2i_conn {
>  	struct iscsi_cls_conn *cls_conn;
>  	struct bnx2i_hba *hba;
>  	struct completion cmd_cleanup_cmpl;
> -	int is_bound;
>  
>  	u32 iscsi_conn_cid;
>  #define BNX2I_CID_RESERVED	0x5AFF
> diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c b/drivers/scsi/bnx2i/bnx2i_iscsi.c
> index cafb888..89e84c3 100644
> --- a/drivers/scsi/bnx2i/bnx2i_iscsi.c
> +++ b/drivers/scsi/bnx2i/bnx2i_iscsi.c
> @@ -1161,9 +1161,6 @@ static int bnx2i_task_xmit(struct iscsi_task *task)
>  	struct bnx2i_cmd *cmd = task->dd_data;
>  	struct iscsi_cmd *hdr = (struct iscsi_cmd *) task->hdr;
>  
> -	if (!bnx2i_conn->is_bound)
> -		return -ENOTCONN;
> -
>  	/*
>  	 * If there is no scsi_cmnd this must be a mgmt task
>  	 */
> @@ -1371,7 +1368,6 @@ static int bnx2i_conn_bind(struct iscsi_cls_session *cls_session,
>  	bnx2i_conn->ep = bnx2i_ep;
>  	bnx2i_conn->iscsi_conn_cid = bnx2i_ep->ep_iscsi_cid;
>  	bnx2i_conn->fw_cid = bnx2i_ep->ep_cid;
> -	bnx2i_conn->is_bound = 1;
>  
>  	ret_code = bnx2i_bind_conn_to_iscsi_cid(hba, bnx2i_conn,
>  						bnx2i_ep->ep_iscsi_cid);
> @@ -1896,9 +1892,7 @@ static void bnx2i_ep_disconnect(struct iscsi_endpoint *ep)
>  		conn = bnx2i_conn->cls_conn->dd_data;
>  		session = conn->session;
>  
> -		spin_lock_bh(&session->lock);
> -		bnx2i_conn->is_bound = 0;
> -		spin_unlock_bh(&session->lock);
> +		iscsi_suspend_queue(conn);
>  	}
>  
>  	hba = bnx2i_ep->hba;


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux