|
@@ -202,8 +202,8 @@ lpfc_sli4_set_rsp_sgl_last(struct lpfc_hba *phba,
|
|
|
static void
|
|
|
lpfc_update_stats(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd)
|
|
|
{
|
|
|
- struct lpfc_rport_data *rdata = lpfc_cmd->rdata;
|
|
|
- struct lpfc_nodelist *pnode = rdata->pnode;
|
|
|
+ struct lpfc_rport_data *rdata;
|
|
|
+ struct lpfc_nodelist *pnode;
|
|
|
struct scsi_cmnd *cmd = lpfc_cmd->pCmd;
|
|
|
unsigned long flags;
|
|
|
struct Scsi_Host *shost = cmd->device->host;
|
|
@@ -211,17 +211,19 @@ lpfc_update_stats(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd)
|
|
|
unsigned long latency;
|
|
|
int i;
|
|
|
|
|
|
- if (cmd->result)
|
|
|
+ if (!vport->stat_data_enabled ||
|
|
|
+ vport->stat_data_blocked ||
|
|
|
+ (cmd->result))
|
|
|
return;
|
|
|
|
|
|
latency = jiffies_to_msecs((long)jiffies - (long)lpfc_cmd->start_time);
|
|
|
+ rdata = lpfc_cmd->rdata;
|
|
|
+ pnode = rdata->pnode;
|
|
|
|
|
|
spin_lock_irqsave(shost->host_lock, flags);
|
|
|
- if (!vport->stat_data_enabled ||
|
|
|
- vport->stat_data_blocked ||
|
|
|
- !pnode ||
|
|
|
- !pnode->lat_data ||
|
|
|
- (phba->bucket_type == LPFC_NO_BUCKET)) {
|
|
|
+ if (!pnode ||
|
|
|
+ !pnode->lat_data ||
|
|
|
+ (phba->bucket_type == LPFC_NO_BUCKET)) {
|
|
|
spin_unlock_irqrestore(shost->host_lock, flags);
|
|
|
return;
|
|
|
}
|