Lines Matching refs:scmnd
928 struct scsi_cmnd *scmnd, in storvsc_handle_error() argument
951 switch (scmnd->cmnd[0]) { in storvsc_handle_error()
954 set_host_byte(scmnd, DID_PASSTHROUGH); in storvsc_handle_error()
964 set_host_byte(scmnd, DID_ERROR); in storvsc_handle_error()
968 set_host_byte(scmnd, DID_NO_CONNECT); in storvsc_handle_error()
980 set_host_byte(scmnd, DID_REQUEUE); in storvsc_handle_error()
993 set_host_byte(scmnd, DID_TARGET_FAILURE); in storvsc_handle_error()
1008 struct scsi_cmnd *scmnd = cmd_request->cmd; in storvsc_command_completion() local
1021 scmnd->result = vm_srb->scsi_status; in storvsc_command_completion()
1023 if (scmnd->result) { in storvsc_command_completion()
1024 if (scsi_normalize_sense(scmnd->sense_buffer, in storvsc_command_completion()
1029 scsi_print_sense_hdr(scmnd->device, "storvsc", in storvsc_command_completion()
1034 storvsc_handle_error(vm_srb, scmnd, host, sense_hdr.asc, in storvsc_command_completion()
1045 scsi_set_resid(scmnd, in storvsc_command_completion()
1048 scmnd->scsi_done(scmnd); in storvsc_command_completion()
1450 static int storvsc_host_reset_handler(struct scsi_cmnd *scmnd) in storvsc_host_reset_handler() argument
1452 struct hv_host_device *host_dev = shost_priv(scmnd->device->host); in storvsc_host_reset_handler()
1506 static enum blk_eh_timer_return storvsc_eh_timed_out(struct scsi_cmnd *scmnd) in storvsc_eh_timed_out() argument
1509 if (scmnd->device->host->transportt == fc_transport_template) in storvsc_eh_timed_out()
1510 return fc_eh_timed_out(scmnd); in storvsc_eh_timed_out()
1515 static bool storvsc_scsi_cmd_ok(struct scsi_cmnd *scmnd) in storvsc_scsi_cmd_ok() argument
1518 u8 scsi_op = scmnd->cmnd[0]; in storvsc_scsi_cmd_ok()
1528 scmnd->result = ILLEGAL_REQUEST << 16; in storvsc_scsi_cmd_ok()
1537 static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd) in storvsc_queuecommand() argument
1542 struct storvsc_cmd_request *cmd_request = scsi_cmd_priv(scmnd); in storvsc_queuecommand()
1561 if (!storvsc_scsi_cmd_ok(scmnd)) { in storvsc_queuecommand()
1562 scmnd->scsi_done(scmnd); in storvsc_queuecommand()
1568 cmd_request->cmd = scmnd; in storvsc_queuecommand()
1576 if (scmnd->device->tagged_supported) { in storvsc_queuecommand()
1584 switch (scmnd->sc_data_direction) { in storvsc_queuecommand()
1603 scmnd->sc_data_direction); in storvsc_queuecommand()
1609 vm_srb->path_id = scmnd->device->channel; in storvsc_queuecommand()
1610 vm_srb->target_id = scmnd->device->id; in storvsc_queuecommand()
1611 vm_srb->lun = scmnd->device->lun; in storvsc_queuecommand()
1613 vm_srb->cdb_length = scmnd->cmd_len; in storvsc_queuecommand()
1615 memcpy(vm_srb->cdb, scmnd->cmnd, vm_srb->cdb_length); in storvsc_queuecommand()
1617 sgl = (struct scatterlist *)scsi_sglist(scmnd); in storvsc_queuecommand()
1618 sg_count = scsi_sg_count(scmnd); in storvsc_queuecommand()
1620 length = scsi_bufflen(scmnd); in storvsc_queuecommand()