Re: [PATCH v2 08/13] qla2xxx: Fix I/O errors during LIP reset tests

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

 




> On Sep 2, 2020, at 2:25 AM, Nilesh Javali <njavali@xxxxxxxxxxx> wrote:
> 
> From: Arun Easi <aeasi@xxxxxxxxxxx>
> 
> In .fcp_io(), returning ENODEV as soon as remote port delete has started
> can cause I/O errors. Fix this by returning EBUSY until the remote port
> delete finishes.
> 
> Signed-off-by: Arun Easi <aeasi@xxxxxxxxxxx>
> Signed-off-by: Nilesh Javali <njavali@xxxxxxxxxxx>
> ---
> drivers/scsi/qla2xxx/qla_nvme.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
> 
> diff --git a/drivers/scsi/qla2xxx/qla_nvme.c b/drivers/scsi/qla2xxx/qla_nvme.c
> index b0c13144c21a..675f2b1180e8 100644
> --- a/drivers/scsi/qla2xxx/qla_nvme.c
> +++ b/drivers/scsi/qla2xxx/qla_nvme.c
> @@ -548,6 +548,16 @@ static int qla_nvme_post_cmd(struct nvme_fc_local_port *lport,
> 		return rval;
> 
> 	vha = fcport->vha;
> +
> +	if (!(fcport->nvme_flag & NVME_FLAG_REGISTERED))
> +		return rval;
> +
> +	if (test_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags))
> +		return -EBUSY;
> +
> +	if ((qpair && !qpair->fw_started) || fcport->deleted)
> +		return -EBUSY;
> +

Small nit

Why not combine above 2 if statements as 

	if (test_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags) ||
	    (qpair && !qpair->fw_started) || fcport->deleted)
		return -EBUSY;

> 	/*
> 	 * If we know the dev is going away while the transport is still sending
> 	 * IO's return busy back to stall the IO Q.  This happens when the
> -- 
> 2.19.0.rc0
> 

--
Himanshu Madhani	 Oracle Linux Engineering





[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