diff options
Diffstat (limited to 'drivers/s390/scsi/zfcp_dbf.h')
| -rw-r--r-- | drivers/s390/scsi/zfcp_dbf.h | 34 | 
1 files changed, 25 insertions, 9 deletions
diff --git a/drivers/s390/scsi/zfcp_dbf.h b/drivers/s390/scsi/zfcp_dbf.h index 8b7fd9a1033..457e046f2d2 100644 --- a/drivers/s390/scsi/zfcp_dbf.h +++ b/drivers/s390/scsi/zfcp_dbf.h @@ -30,6 +30,8 @@  #define ZFCP_DBF_TAG_SIZE      4  #define ZFCP_DBF_ID_SIZE       7 +#define ZFCP_DBF_INVALID_LUN	0xFFFFFFFFFFFFFFFFull +  struct zfcp_dbf_dump {  	u8 tag[ZFCP_DBF_TAG_SIZE];  	u32 total_size;		/* size of total dump data */ @@ -192,10 +194,10 @@ struct zfcp_dbf_san_record {  		struct zfcp_dbf_san_record_ct_response ct_resp;  		struct zfcp_dbf_san_record_els els;  	} u; -#define ZFCP_DBF_SAN_MAX_PAYLOAD 1024 -	u8 payload[32];  } __attribute__ ((packed)); +#define ZFCP_DBF_SAN_MAX_PAYLOAD 1024 +  struct zfcp_dbf_scsi_record {  	u8 tag[ZFCP_DBF_TAG_SIZE];  	u8 tag2[ZFCP_DBF_TAG_SIZE]; @@ -301,17 +303,31 @@ void zfcp_dbf_scsi(const char *tag, const char *tag2, int level,  /**   * zfcp_dbf_scsi_result - trace event for SCSI command completion - * @tag: tag indicating success or failure of SCSI command - * @level: trace level applicable for this event - * @adapter: adapter that has been used to issue the SCSI command + * @dbf: adapter dbf trace + * @scmd: SCSI command pointer + * @req: FSF request used to issue SCSI command + */ +static inline +void zfcp_dbf_scsi_result(struct zfcp_dbf *dbf, struct scsi_cmnd *scmd, +			  struct zfcp_fsf_req *req) +{ +	if (scmd->result != 0) +		zfcp_dbf_scsi("rslt", "erro", 3, dbf, scmd, req, 0); +	else if (scmd->retries > 0) +		zfcp_dbf_scsi("rslt", "retr", 4, dbf, scmd, req, 0); +	else +		zfcp_dbf_scsi("rslt", "norm", 6, dbf, scmd, req, 0); +} + +/** + * zfcp_dbf_scsi_fail_send - trace event for failure to send SCSI command + * @dbf: adapter dbf trace   * @scmd: SCSI command pointer - * @fsf_req: request used to issue SCSI command (might be NULL)   */  static inline -void zfcp_dbf_scsi_result(const char *tag, int level, struct zfcp_dbf *dbf, -			  struct scsi_cmnd *scmd, struct zfcp_fsf_req *fsf_req) +void zfcp_dbf_scsi_fail_send(struct zfcp_dbf *dbf, struct scsi_cmnd *scmd)  { -	zfcp_dbf_scsi("rslt", tag, level, dbf, scmd, fsf_req, 0); +	zfcp_dbf_scsi("rslt", "fail", 4, dbf, scmd, NULL, 0);  }  /**  |