Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c
Show First 20 Lines • Show All 2,167 Lines • ▼ Show 20 Lines | if (srb_status != SRB_STATUS_SUCCESS) { | ||||
scsi_op_desc(cmd->opcode, NULL)); | scsi_op_desc(cmd->opcode, NULL)); | ||||
} else { | } else { | ||||
xpt_print(ccb->ccb_h.path, | xpt_print(ccb->ccb_h.path, | ||||
"Unknown SRB flag: %d for op: %s\n", | "Unknown SRB flag: %d for op: %s\n", | ||||
srb_status, | srb_status, | ||||
scsi_op_desc(cmd->opcode, NULL)); | scsi_op_desc(cmd->opcode, NULL)); | ||||
} | } | ||||
} | } | ||||
/* | |||||
* XXX For a selection timeout, all of the LUNs | |||||
* on the target will be gone. It works for SCSI | |||||
* disks, but does not work for IDE disks. | |||||
* | |||||
* For CAM_DEV_NOT_THERE, CAM will only get | |||||
* rid of the device(s) specified by the path. | |||||
*/ | |||||
if (storvsc_get_storage_type(sc->hs_dev) == | |||||
DRIVER_STORVSC) | |||||
ccb->ccb_h.status |= CAM_SEL_TIMEOUT; | |||||
else | |||||
ccb->ccb_h.status |= CAM_DEV_NOT_THERE; | ccb->ccb_h.status |= CAM_DEV_NOT_THERE; | ||||
} else { | } else { | ||||
ccb->ccb_h.status |= CAM_REQ_CMP; | ccb->ccb_h.status |= CAM_REQ_CMP; | ||||
} | } | ||||
if (cmd->opcode == INQUIRY && | if (cmd->opcode == INQUIRY && | ||||
srb_status == SRB_STATUS_SUCCESS) { | srb_status == SRB_STATUS_SUCCESS) { | ||||
int resp_xfer_len, resp_buf_len, data_len; | int resp_xfer_len, resp_buf_len, data_len; | ||||
uint8_t *resp_buf = (uint8_t *)csio->data_ptr; | uint8_t *resp_buf = (uint8_t *)csio->data_ptr; | ||||
▲ Show 20 Lines • Show All 203 Lines • Show Last 20 Lines |