I think something got dropped by accident when you redid your patchset.
There is a missing memset(hdr, 0, sizeof(*hdr)); for iscsi_eh_device_reset.
On 08/13/2009 02:58 AM, Hannes Reinecke wrote:
> @@ -2050,6 +2135,7 @@ int iscsi_eh_abort(struct scsi_cmnd *sc)
> spin_lock_bh(&session->lock);
> fail_scsi_task(task, DID_ABORT);
> conn->tmf_state = TMF_INITIAL;
> + memset(hdr, 0, sizeof(*hdr));
> spin_unlock_bh(&session->lock);
> iscsi_start_tx(conn);
> goto success_unlocked;
> @@ -2060,6 +2146,7 @@ int iscsi_eh_abort(struct scsi_cmnd *sc)
> case TMF_NOT_FOUND:
> if (!sc->SCp.ptr) {
> conn->tmf_state = TMF_INITIAL;
> + memset(hdr, 0, sizeof(*hdr));
> /* task completed before tmf abort response */
> ISCSI_DBG_EH(session, "sc completed while abort in "
> "progress\n");
> @@ -2796,6 +2883,7 @@ static void iscsi_start_session_recovery(struct
> iscsi_session *session,
> spin_lock_bh(&session->lock);
> fail_scsi_tasks(conn, -1, DID_TRANSPORT_DISRUPTED);
> fail_mgmt_tasks(session, conn);
> + memset(&conn->tmhdr, 0, sizeof(conn->tmhdr));
> spin_unlock_bh(&session->lock);
> mutex_unlock(&session->eh_mutex);
> }
> diff --git a/include/scsi/iscsi_proto.h b/include/scsi/iscsi_proto.h
> index f2a2c11..dd0a52c 100644
> --- a/include/scsi/iscsi_proto.h
> +++ b/include/scsi/iscsi_proto.h
> @@ -279,6 +279,8 @@ struct iscsi_tm {
> #define ISCSI_TM_FUNC_TARGET_COLD_RESET 7
> #define ISCSI_TM_FUNC_TASK_REASSIGN 8
>
> +#define ISCSI_TM_FUNC_VALUE(hdr) ((hdr)->flags& ISCSI_FLAG_TM_FUNC_MASK)
> +
> /* SCSI Task Management Response Header */
> struct iscsi_tm_rsp {
> uint8_t opcode;
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"open-iscsi" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at http://groups.google.com/group/open-iscsi
-~----------~----~----~----~------~----~------~--~---