MFC r272406:
Make disconnected LUN 0 don't remain in half-configured state if there are no LUNs on SPC-3 target after we tried REPORT LUNS.
This commit is contained in:
parent
3f2b3e757a
commit
5c2f41bdb0
@ -1197,12 +1197,6 @@ probedone(struct cam_periph *periph, union ccb *done_ccb)
|
||||
SID_ANSI_REV(inq_buf) > SCSI_REV_SPC2 &&
|
||||
(SCSI_QUIRK(path->device)->quirks &
|
||||
CAM_QUIRK_NORPTLUNS) == 0) {
|
||||
if (path->device->flags &
|
||||
CAM_DEV_UNCONFIGURED) {
|
||||
path->device->flags &=
|
||||
~CAM_DEV_UNCONFIGURED;
|
||||
xpt_acquire_device(path->device);
|
||||
}
|
||||
PROBE_SET_ACTION(softc, PROBE_REPORT_LUNS);
|
||||
periph->path->target->rpl_size = 16;
|
||||
xpt_release_ccb(done_ccb);
|
||||
@ -1313,14 +1307,6 @@ probedone(struct cam_periph *periph, union ccb *done_ccb)
|
||||
tlun, 8);
|
||||
CAM_DEBUG(path, CAM_DEBUG_PROBE,
|
||||
("lun 0 in position %u\n", idx));
|
||||
} else {
|
||||
/*
|
||||
* There is no lun 0 in our list. Destroy
|
||||
* the validity of the inquiry data so we
|
||||
* bail here and now.
|
||||
*/
|
||||
path->device->flags &=
|
||||
~CAM_DEV_INQUIRY_DATA_VALID;
|
||||
}
|
||||
}
|
||||
/*
|
||||
@ -1333,7 +1319,8 @@ probedone(struct cam_periph *periph, union ccb *done_ccb)
|
||||
probe_purge_old(path, lp, softc->flags);
|
||||
lp = NULL;
|
||||
}
|
||||
if (path->device->flags & CAM_DEV_INQUIRY_DATA_VALID) {
|
||||
if (path->device->flags & CAM_DEV_INQUIRY_DATA_VALID &&
|
||||
SID_QUAL(&path->device->inq_data) == SID_QUAL_LU_CONNECTED) {
|
||||
struct scsi_inquiry_data *inq_buf;
|
||||
inq_buf = &path->device->inq_data;
|
||||
if (INQ_DATA_TQ_ENABLED(inq_buf))
|
||||
@ -1348,6 +1335,8 @@ probedone(struct cam_periph *periph, union ccb *done_ccb)
|
||||
if (lp) {
|
||||
free(lp, M_CAMXPT);
|
||||
}
|
||||
PROBE_SET_ACTION(softc, PROBE_INVALID);
|
||||
xpt_release_ccb(done_ccb);
|
||||
break;
|
||||
}
|
||||
case PROBE_MODE_SENSE:
|
||||
|
Loading…
Reference in New Issue
Block a user