Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 277958c8 authored by Steffen Maier's avatar Steffen Maier Committed by Greg Kroah-Hartman
Browse files

scsi: zfcp: fix missing trace records for early returns in TMF eh handlers



commit 1a5d999ebfc7bfe28deb48931bb57faa8e4102b6 upstream.

For problem determination we need to see that we were in scsi_eh
as well as whether and why we were successful or not.

The following commits introduced new early returns without adding
a trace record:

v2.6.35 commit a1dbfddd
("[SCSI] zfcp: Pass return code from fc_block_scsi_eh to scsi eh")
on fc_block_scsi_eh() returning != 0 which is FAST_IO_FAIL,

v2.6.30 commit 63caf367
("[SCSI] zfcp: Improve reliability of SCSI eh handlers in zfcp")
on not having gotten an FSF request after the maximum number of retry
attempts and thus could not issue a TMF and has to return FAILED.

Signed-off-by: default avatarSteffen Maier <maier@linux.vnet.ibm.com>
Fixes: a1dbfddd ("[SCSI] zfcp: Pass return code from fc_block_scsi_eh to scsi eh")
Fixes: 63caf367 ("[SCSI] zfcp: Improve reliability of SCSI eh handlers in zfcp")
Reviewed-by: default avatarBenjamin Block <bblock@linux.vnet.ibm.com>
Signed-off-by: default avatarBenjamin Block <bblock@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9799a4d5
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -245,8 +245,10 @@ static int zfcp_task_mgmt_function(struct scsi_cmnd *scpnt, u8 tm_flags)

		zfcp_erp_wait(adapter);
		ret = fc_block_scsi_eh(scpnt);
		if (ret)
		if (ret) {
			zfcp_dbf_scsi_devreset("fiof", scpnt, tm_flags);
			return ret;
		}

		if (!(atomic_read(&adapter->status) &
		      ZFCP_STATUS_COMMON_RUNNING)) {
@@ -254,8 +256,10 @@ static int zfcp_task_mgmt_function(struct scsi_cmnd *scpnt, u8 tm_flags)
			return SUCCESS;
		}
	}
	if (!fsf_req)
	if (!fsf_req) {
		zfcp_dbf_scsi_devreset("reqf", scpnt, tm_flags);
		return FAILED;
	}

	wait_for_completion(&fsf_req->completion);