zfcp: retain trace level for SCSI and HBA FSF response records
While retaining the actual filtering according to trace level, the following commits started to write such filtered records with a hardcoded record level of 1 instead of the actual record level: commit250a1352b9
("[SCSI] zfcp: Redesign of the debug tracing for SCSI records.") commita54ca0f62f
("[SCSI] zfcp: Redesign of the debug tracing for HBA records.") Now we can distinguish written records again for offline level filtering. Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com> Fixes:250a1352b9
("[SCSI] zfcp: Redesign of the debug tracing for SCSI records.") Fixes:a54ca0f62f
("[SCSI] zfcp: Redesign of the debug tracing for HBA records.") Cc: <stable@vger.kernel.org> #2.6.38+ Reviewed-by: Benjamin Block <bblock@linux.vnet.ibm.com> Reviewed-by: Hannes Reinecke <hare@suse.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
4eeaa4f3f1
commit
35f040df97
|
@ -3,7 +3,7 @@
|
||||||
*
|
*
|
||||||
* Debug traces for zfcp.
|
* Debug traces for zfcp.
|
||||||
*
|
*
|
||||||
* Copyright IBM Corp. 2002, 2013
|
* Copyright IBM Corp. 2002, 2015
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define KMSG_COMPONENT "zfcp"
|
#define KMSG_COMPONENT "zfcp"
|
||||||
|
@ -65,7 +65,7 @@ void zfcp_dbf_pl_write(struct zfcp_dbf *dbf, void *data, u16 length, char *area,
|
||||||
* @tag: tag indicating which kind of unsolicited status has been received
|
* @tag: tag indicating which kind of unsolicited status has been received
|
||||||
* @req: request for which a response was received
|
* @req: request for which a response was received
|
||||||
*/
|
*/
|
||||||
void zfcp_dbf_hba_fsf_res(char *tag, struct zfcp_fsf_req *req)
|
void zfcp_dbf_hba_fsf_res(char *tag, int level, struct zfcp_fsf_req *req)
|
||||||
{
|
{
|
||||||
struct zfcp_dbf *dbf = req->adapter->dbf;
|
struct zfcp_dbf *dbf = req->adapter->dbf;
|
||||||
struct fsf_qtcb_prefix *q_pref = &req->qtcb->prefix;
|
struct fsf_qtcb_prefix *q_pref = &req->qtcb->prefix;
|
||||||
|
@ -97,7 +97,7 @@ void zfcp_dbf_hba_fsf_res(char *tag, struct zfcp_fsf_req *req)
|
||||||
rec->pl_len, "fsf_res", req->req_id);
|
rec->pl_len, "fsf_res", req->req_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
debug_event(dbf->hba, 1, rec, sizeof(*rec));
|
debug_event(dbf->hba, level, rec, sizeof(*rec));
|
||||||
spin_unlock_irqrestore(&dbf->hba_lock, flags);
|
spin_unlock_irqrestore(&dbf->hba_lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -399,7 +399,8 @@ void zfcp_dbf_san_in_els(char *tag, struct zfcp_fsf_req *fsf)
|
||||||
* @sc: pointer to struct scsi_cmnd
|
* @sc: pointer to struct scsi_cmnd
|
||||||
* @fsf: pointer to struct zfcp_fsf_req
|
* @fsf: pointer to struct zfcp_fsf_req
|
||||||
*/
|
*/
|
||||||
void zfcp_dbf_scsi(char *tag, struct scsi_cmnd *sc, struct zfcp_fsf_req *fsf)
|
void zfcp_dbf_scsi(char *tag, int level, struct scsi_cmnd *sc,
|
||||||
|
struct zfcp_fsf_req *fsf)
|
||||||
{
|
{
|
||||||
struct zfcp_adapter *adapter =
|
struct zfcp_adapter *adapter =
|
||||||
(struct zfcp_adapter *) sc->device->host->hostdata[0];
|
(struct zfcp_adapter *) sc->device->host->hostdata[0];
|
||||||
|
@ -442,7 +443,7 @@ void zfcp_dbf_scsi(char *tag, struct scsi_cmnd *sc, struct zfcp_fsf_req *fsf)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
debug_event(dbf->scsi, 1, rec, sizeof(*rec));
|
debug_event(dbf->scsi, level, rec, sizeof(*rec));
|
||||||
spin_unlock_irqrestore(&dbf->scsi_lock, flags);
|
spin_unlock_irqrestore(&dbf->scsi_lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -284,7 +284,7 @@ static inline
|
||||||
void zfcp_dbf_hba_fsf_resp(char *tag, int level, struct zfcp_fsf_req *req)
|
void zfcp_dbf_hba_fsf_resp(char *tag, int level, struct zfcp_fsf_req *req)
|
||||||
{
|
{
|
||||||
if (debug_level_enabled(req->adapter->dbf->hba, level))
|
if (debug_level_enabled(req->adapter->dbf->hba, level))
|
||||||
zfcp_dbf_hba_fsf_res(tag, req);
|
zfcp_dbf_hba_fsf_res(tag, level, req);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -323,7 +323,7 @@ void _zfcp_dbf_scsi(char *tag, int level, struct scsi_cmnd *scmd,
|
||||||
scmd->device->host->hostdata[0];
|
scmd->device->host->hostdata[0];
|
||||||
|
|
||||||
if (debug_level_enabled(adapter->dbf->scsi, level))
|
if (debug_level_enabled(adapter->dbf->scsi, level))
|
||||||
zfcp_dbf_scsi(tag, scmd, req);
|
zfcp_dbf_scsi(tag, level, scmd, req);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
*
|
*
|
||||||
* External function declarations.
|
* External function declarations.
|
||||||
*
|
*
|
||||||
* Copyright IBM Corp. 2002, 2010
|
* Copyright IBM Corp. 2002, 2015
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef ZFCP_EXT_H
|
#ifndef ZFCP_EXT_H
|
||||||
|
@ -36,7 +36,7 @@ extern void zfcp_dbf_rec_trig(char *, struct zfcp_adapter *,
|
||||||
struct zfcp_port *, struct scsi_device *, u8, u8);
|
struct zfcp_port *, struct scsi_device *, u8, u8);
|
||||||
extern void zfcp_dbf_rec_run(char *, struct zfcp_erp_action *);
|
extern void zfcp_dbf_rec_run(char *, struct zfcp_erp_action *);
|
||||||
extern void zfcp_dbf_hba_fsf_uss(char *, struct zfcp_fsf_req *);
|
extern void zfcp_dbf_hba_fsf_uss(char *, struct zfcp_fsf_req *);
|
||||||
extern void zfcp_dbf_hba_fsf_res(char *, struct zfcp_fsf_req *);
|
extern void zfcp_dbf_hba_fsf_res(char *, int, struct zfcp_fsf_req *);
|
||||||
extern void zfcp_dbf_hba_bit_err(char *, struct zfcp_fsf_req *);
|
extern void zfcp_dbf_hba_bit_err(char *, struct zfcp_fsf_req *);
|
||||||
extern void zfcp_dbf_hba_berr(struct zfcp_dbf *, struct zfcp_fsf_req *);
|
extern void zfcp_dbf_hba_berr(struct zfcp_dbf *, struct zfcp_fsf_req *);
|
||||||
extern void zfcp_dbf_hba_def_err(struct zfcp_adapter *, u64, u16, void **);
|
extern void zfcp_dbf_hba_def_err(struct zfcp_adapter *, u64, u16, void **);
|
||||||
|
@ -44,7 +44,8 @@ extern void zfcp_dbf_hba_basic(char *, struct zfcp_adapter *);
|
||||||
extern void zfcp_dbf_san_req(char *, struct zfcp_fsf_req *, u32);
|
extern void zfcp_dbf_san_req(char *, struct zfcp_fsf_req *, u32);
|
||||||
extern void zfcp_dbf_san_res(char *, struct zfcp_fsf_req *);
|
extern void zfcp_dbf_san_res(char *, struct zfcp_fsf_req *);
|
||||||
extern void zfcp_dbf_san_in_els(char *, struct zfcp_fsf_req *);
|
extern void zfcp_dbf_san_in_els(char *, struct zfcp_fsf_req *);
|
||||||
extern void zfcp_dbf_scsi(char *, struct scsi_cmnd *, struct zfcp_fsf_req *);
|
extern void zfcp_dbf_scsi(char *, int, struct scsi_cmnd *,
|
||||||
|
struct zfcp_fsf_req *);
|
||||||
|
|
||||||
/* zfcp_erp.c */
|
/* zfcp_erp.c */
|
||||||
extern void zfcp_erp_set_adapter_status(struct zfcp_adapter *, u32);
|
extern void zfcp_erp_set_adapter_status(struct zfcp_adapter *, u32);
|
||||||
|
|
Loading…
Reference in New Issue