On 9/30/20 1:33 PM, Muneendra Kumar M wrote:
Hi Hannes,
Thanks for the input.
+++ b/drivers/scsi/lpfc/lpfc_scsi.c
@@ -4526,6 +4526,12 @@ lpfc_queuecommand(struct Scsi_Host *shost, struct
scsi_cmnd *cmnd)
cmnd->result = err;
goto out_fail_command;
}
+
+ /*
+ * If port state is marginal
+ * Set the SCMD_NORETRIES_ABORT bit in scmd->state
+ */
+ fc_rport_chkmarginal_set_noretries(rport, cmnd);
ndlp = rdata->pnode;
if ((scsi_get_prot_op(cmnd) != SCSI_PROT_NORMAL) &&
This really should be moved into the transport class; fc_block_rport()
would be an ideal place for it.
[Muneendra]Correct me if I didn't understand correctly.
As fc_block_rport cannot take arg of scsi_cmd can we add it as part of
fc_block_scsi_eh ?
Ah, right.
Actually I meant 'fc_remote_port_chkready()'.
That doesnt' take an scmd as argument, but I don't see why we can't
modify it to have an additonal 'sdev' parameter...
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@xxxxxxx +49 911 74053 688
SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), GF: Felix Imendörffer