Lines Matching refs:sc
152 struct scsi_cmnd *cmd = task->sc; in iscsi_prep_ecdb_ahs()
188 struct scsi_cmnd *sc = task->sc; in iscsi_prep_bidi_ahs() local
202 rlen_ahdr->read_length = cpu_to_be32(scsi_in(sc)->length); in iscsi_prep_bidi_ahs()
222 struct scsi_cmnd *sc = task->sc; in iscsi_prep_scsi_cmd_pdu() local
246 int_to_scsilun(sc->device->lun, (struct scsi_lun *)hdr->lun); in iscsi_prep_scsi_cmd_pdu()
251 cmd_len = sc->cmd_len; in iscsi_prep_scsi_cmd_pdu()
260 memcpy(hdr->cdb, sc->cmnd, cmd_len); in iscsi_prep_scsi_cmd_pdu()
263 if (scsi_bidi_cmnd(sc)) { in iscsi_prep_scsi_cmd_pdu()
269 if (sc->sc_data_direction == DMA_TO_DEVICE) { in iscsi_prep_scsi_cmd_pdu()
270 unsigned out_len = scsi_out(sc)->length; in iscsi_prep_scsi_cmd_pdu()
316 hdr->data_length = cpu_to_be32(scsi_in(sc)->length); in iscsi_prep_scsi_cmd_pdu()
318 if (sc->sc_data_direction == DMA_FROM_DEVICE) in iscsi_prep_scsi_cmd_pdu()
339 "bidi_len %d cmdsn %d win %d]\n", scsi_bidi_cmnd(sc) ? in iscsi_prep_scsi_cmd_pdu()
340 "bidirectional" : sc->sc_data_direction == DMA_TO_DEVICE ? in iscsi_prep_scsi_cmd_pdu()
341 "write" : "read", conn->id, sc, sc->cmnd[0], task->itt, in iscsi_prep_scsi_cmd_pdu()
342 scsi_bufflen(sc), in iscsi_prep_scsi_cmd_pdu()
343 scsi_bidi_cmnd(sc) ? scsi_in(sc)->length : 0, in iscsi_prep_scsi_cmd_pdu()
360 struct scsi_cmnd *sc = task->sc; in iscsi_complete_command() local
365 task->sc = NULL; in iscsi_complete_command()
380 if (sc) { in iscsi_complete_command()
381 task->sc = NULL; in iscsi_complete_command()
383 sc->SCp.ptr = NULL; in iscsi_complete_command()
388 if (sc->scsi_done) in iscsi_complete_command()
389 sc->scsi_done(sc); in iscsi_complete_command()
421 struct scsi_cmnd *sc; in fail_command() local
423 sc = task->sc; in fail_command()
424 if (!sc) in fail_command()
434 sc->result = err; in fail_command()
435 if (!scsi_bidi_cmnd(sc)) in fail_command()
436 scsi_set_resid(sc, scsi_bufflen(sc)); in fail_command()
438 scsi_out(sc)->resid = scsi_out(sc)->length; in fail_command()
439 scsi_in(sc)->resid = scsi_in(sc)->length; in fail_command()
527 task->sc = NULL; in __iscsi_conn_send_pdu()
610 struct scsi_cmnd *sc = task->sc; in iscsi_scsi_cmd_rsp() local
615 sc->result = (DID_OK << 16) | rhdr->cmd_status; in iscsi_scsi_cmd_rsp()
618 sc->result = DID_ERROR << 16; in iscsi_scsi_cmd_rsp()
630 sc->result = DID_BAD_TARGET << 16; in iscsi_scsi_cmd_rsp()
638 memcpy(sc->sense_buffer, data + 2, in iscsi_scsi_cmd_rsp()
648 if (scsi_bidi_cmnd(sc) && res_count > 0 && in iscsi_scsi_cmd_rsp()
650 res_count <= scsi_in(sc)->length)) in iscsi_scsi_cmd_rsp()
651 scsi_in(sc)->resid = res_count; in iscsi_scsi_cmd_rsp()
653 sc->result = (DID_BAD_TARGET << 16) | rhdr->cmd_status; in iscsi_scsi_cmd_rsp()
662 res_count <= scsi_bufflen(sc))) in iscsi_scsi_cmd_rsp()
664 scsi_set_resid(sc, res_count); in iscsi_scsi_cmd_rsp()
666 sc->result = (DID_BAD_TARGET << 16) | rhdr->cmd_status; in iscsi_scsi_cmd_rsp()
670 (long)sc, sc->result, task->itt); in iscsi_scsi_cmd_rsp()
687 struct scsi_cmnd *sc = task->sc; in iscsi_data_in_rsp() local
692 sc->result = (DID_OK << 16) | rhdr->cmd_status; in iscsi_data_in_rsp()
700 res_count <= scsi_in(sc)->length)) in iscsi_data_in_rsp()
701 scsi_in(sc)->resid = res_count; in iscsi_data_in_rsp()
703 sc->result = (DID_BAD_TARGET << 16) | rhdr->cmd_status; in iscsi_data_in_rsp()
1023 if (!task || !task->sc) in iscsi_itt_to_ctask()
1026 if (task->sc->SCp.phase != conn->session->age) { in iscsi_itt_to_ctask()
1029 task->sc->SCp.phase, conn->session->age); in iscsi_itt_to_ctask()
1261 struct scsi_cmnd *sc) in iscsi_alloc_task() argument
1269 sc->SCp.phase = conn->session->age; in iscsi_alloc_task()
1270 sc->SCp.ptr = (char *) task; in iscsi_alloc_task()
1275 task->sc = sc; in iscsi_alloc_task()
1293 int iscsi_queuecommand(struct scsi_cmnd *sc, void (*done)(struct scsi_cmnd *)) in iscsi_queuecommand() argument
1302 sc->scsi_done = done; in iscsi_queuecommand()
1303 sc->result = 0; in iscsi_queuecommand()
1304 sc->SCp.ptr = NULL; in iscsi_queuecommand()
1306 host = sc->device->host; in iscsi_queuecommand()
1309 cls_session = starget_to_session(scsi_target(sc->device)); in iscsi_queuecommand()
1315 sc->result = reason; in iscsi_queuecommand()
1341 sc->result = DID_TRANSPORT_FAILFAST << 16; in iscsi_queuecommand()
1345 sc->result = DID_NO_CONNECT << 16; in iscsi_queuecommand()
1349 sc->result = DID_NO_CONNECT << 16; in iscsi_queuecommand()
1357 sc->result = DID_NO_CONNECT << 16; in iscsi_queuecommand()
1366 task = iscsi_alloc_task(conn, sc); in iscsi_queuecommand()
1380 sc->result = DID_ABORT << 16; in iscsi_queuecommand()
1397 sc->scsi_done = NULL; in iscsi_queuecommand()
1401 debug_scsi("cmd 0x%x rejected (%d)\n", sc->cmnd[0], reason); in iscsi_queuecommand()
1406 sc->scsi_done = NULL; in iscsi_queuecommand()
1410 debug_scsi("iscsi: cmd 0x%x is not queued (%d)\n", sc->cmnd[0], reason); in iscsi_queuecommand()
1411 if (!scsi_bidi_cmnd(sc)) in iscsi_queuecommand()
1412 scsi_set_resid(sc, scsi_bufflen(sc)); in iscsi_queuecommand()
1414 scsi_out(sc)->resid = scsi_out(sc)->length; in iscsi_queuecommand()
1415 scsi_in(sc)->resid = scsi_in(sc)->length; in iscsi_queuecommand()
1417 done(sc); in iscsi_queuecommand()
1446 int iscsi_eh_target_reset(struct scsi_cmnd *sc) in iscsi_eh_target_reset() argument
1452 cls_session = starget_to_session(scsi_target(sc->device)); in iscsi_eh_target_reset()
1570 if (conn->task && (conn->task->sc->device->lun == lun || lun == -1)) in fail_all_commands()
1575 if (lun == task->sc->device->lun || lun == -1) { in fail_all_commands()
1577 task->sc, task->itt); in fail_all_commands()
1583 if (lun == task->sc->device->lun || lun == -1) { in fail_all_commands()
1585 task->sc, task->itt); in fail_all_commands()
1592 if (lun == task->sc->device->lun || lun == -1) { in fail_all_commands()
1594 task->sc, task->itt); in fail_all_commands()
1724 int iscsi_eh_abort(struct scsi_cmnd *sc) in iscsi_eh_abort() argument
1733 cls_session = starget_to_session(scsi_target(sc->device)); in iscsi_eh_abort()
1742 if (!sc->SCp.ptr) { in iscsi_eh_abort()
1754 sc->SCp.phase != session->age) { in iscsi_eh_abort()
1764 task = (struct iscsi_task *)sc->SCp.ptr; in iscsi_eh_abort()
1765 debug_scsi("aborting [sc %p itt 0x%x]\n", sc, task->itt); in iscsi_eh_abort()
1768 if (!task->sc) { in iscsi_eh_abort()
1815 if (!sc->SCp.ptr) { in iscsi_eh_abort()
1830 debug_scsi("abort success [sc %lx itt 0x%x]\n", (long)sc, task->itt); in iscsi_eh_abort()
1837 debug_scsi("abort failed [sc %p itt 0x%x]\n", sc, in iscsi_eh_abort()
1844 static void iscsi_prep_lun_reset_pdu(struct scsi_cmnd *sc, struct iscsi_tm *hdr) in iscsi_prep_lun_reset_pdu() argument
1850 int_to_scsilun(sc->device->lun, (struct scsi_lun *)hdr->lun); in iscsi_prep_lun_reset_pdu()
1854 int iscsi_eh_device_reset(struct scsi_cmnd *sc) in iscsi_eh_device_reset() argument
1862 cls_session = starget_to_session(scsi_target(sc->device)); in iscsi_eh_device_reset()
1865 debug_scsi("LU Reset [sc %p lun %u]\n", sc, sc->device->lun); in iscsi_eh_device_reset()
1883 iscsi_prep_lun_reset_pdu(sc, hdr); in iscsi_eh_device_reset()
1909 fail_all_commands(conn, sc->device->lun, DID_ERROR); in iscsi_eh_device_reset()