Skip to content

Commit

Permalink
[SCSI] qla2xxx: Optimize existing port name server query matching.
Browse files Browse the repository at this point in the history
Signed-off-by: Joe Carnuccio <joe.carnuccio@qlogic.com>
Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
  • Loading branch information
Joe Carnuccio authored and James Bottomley committed May 22, 2012
1 parent c6d39e2 commit c0822b6
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 9 deletions.
3 changes: 3 additions & 0 deletions drivers/scsi/qla2xxx/qla_def.h
Original file line number Diff line number Diff line change
Expand Up @@ -1723,6 +1723,9 @@ typedef struct fc_port {
uint8_t scan_state;
} fc_port_t;

#define QLA_FCPORT_SCAN_NONE 0
#define QLA_FCPORT_SCAN_FOUND 1

/*
* Fibre channel port/lun states.
*/
Expand Down
14 changes: 5 additions & 9 deletions drivers/scsi/qla2xxx/qla_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -2499,6 +2499,7 @@ qla2x00_alloc_fcport(scsi_qla_host_t *vha, gfp_t flags)
fcport->loop_id = FC_NO_LOOP_ID;
qla2x00_set_fcport_state(fcport, FCS_UNCONFIGURED);
fcport->supported_classes = FC_COS_UNSPECIFIED;
fcport->scan_state = QLA_FCPORT_SCAN_NONE;

return fcport;
}
Expand Down Expand Up @@ -2985,13 +2986,6 @@ qla2x00_configure_fabric(scsi_qla_host_t *vha)
}
}

#define QLA_FCPORT_SCAN 1
#define QLA_FCPORT_FOUND 2

list_for_each_entry(fcport, &vha->vp_fcports, list) {
fcport->scan_state = QLA_FCPORT_SCAN;
}

rval = qla2x00_find_all_fabric_devs(vha, &new_fcports);
if (rval != QLA_SUCCESS)
break;
Expand All @@ -3007,7 +3001,7 @@ qla2x00_configure_fabric(scsi_qla_host_t *vha)
if ((fcport->flags & FCF_FABRIC_DEVICE) == 0)
continue;

if (fcport->scan_state == QLA_FCPORT_SCAN &&
if (fcport->scan_state != QLA_FCPORT_SCAN_FOUND &&
atomic_read(&fcport->state) == FCS_ONLINE) {
qla2x00_mark_device_lost(vha, fcport,
ql2xplogiabsentdevice, 0);
Expand All @@ -3022,7 +3016,9 @@ qla2x00_configure_fabric(scsi_qla_host_t *vha)
fcport->d_id.b.al_pa);
fcport->loop_id = FC_NO_LOOP_ID;
}
continue;
}
fcport->scan_state = QLA_FCPORT_SCAN_NONE;
}

/* Starting free loop ID. */
Expand Down Expand Up @@ -3277,7 +3273,7 @@ qla2x00_find_all_fabric_devs(scsi_qla_host_t *vha,
WWN_SIZE))
continue;

fcport->scan_state = QLA_FCPORT_FOUND;
fcport->scan_state = QLA_FCPORT_SCAN_FOUND;

found++;

Expand Down

0 comments on commit c0822b6

Please sign in to comment.