summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaran Tilak Kumar <kartilak@cisco.com>2023-07-27 12:39:19 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-08-16 18:22:03 +0200
commite70469c289539cdc2bed00e3e4b63ec5be4cb2cb (patch)
treeec43b06a1893e424ee0b588d3cf1b6ef03c574ba
parent6bc7f4c8c27d526f968788b8a985896755b1df35 (diff)
downloadlinux-e70469c289539cdc2bed00e3e4b63ec5be4cb2cb.tar.gz
linux-e70469c289539cdc2bed00e3e4b63ec5be4cb2cb.tar.bz2
linux-e70469c289539cdc2bed00e3e4b63ec5be4cb2cb.zip
scsi: fnic: Replace return codes in fnic_clean_pending_aborts()
commit 5a43b07a87835660f91d88a4db11abfea8c523b7 upstream. fnic_clean_pending_aborts() was returning a non-zero value irrespective of failure or success. This caused the caller of this function to assume that the device reset had failed, even though it would succeed in most cases. As a consequence, a successful device reset would escalate to host reset. Reviewed-by: Sesidhar Baddela <sebaddel@cisco.com> Tested-by: Karan Tilak Kumar <kartilak@cisco.com> Signed-off-by: Karan Tilak Kumar <kartilak@cisco.com> Link: https://lore.kernel.org/r/20230727193919.2519-1-kartilak@cisco.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/scsi/fnic/fnic_scsi.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/scsi/fnic/fnic_scsi.c b/drivers/scsi/fnic/fnic_scsi.c
index d084a7db3925..e6c36b5b0739 100644
--- a/drivers/scsi/fnic/fnic_scsi.c
+++ b/drivers/scsi/fnic/fnic_scsi.c
@@ -2172,7 +2172,7 @@ static int fnic_clean_pending_aborts(struct fnic *fnic,
bool new_sc)
{
- int ret = SUCCESS;
+ int ret = 0;
struct fnic_pending_aborts_iter_data iter_data = {
.fnic = fnic,
.lun_dev = lr_sc->device,
@@ -2192,9 +2192,11 @@ static int fnic_clean_pending_aborts(struct fnic *fnic,
/* walk again to check, if IOs are still pending in fw */
if (fnic_is_abts_pending(fnic, lr_sc))
- ret = FAILED;
+ ret = 1;
clean_pending_aborts_end:
+ FNIC_SCSI_DBG(KERN_INFO, fnic->lport->host,
+ "%s: exit status: %d\n", __func__, ret);
return ret;
}