Lines Matching refs:sc

185 	struct scsi_cmnd *cmd = task->sc;  in iscsi_prep_ecdb_ahs()
222 struct scsi_cmnd *sc = task->sc; in iscsi_prep_bidi_ahs() local
236 rlen_ahdr->read_length = cpu_to_be32(scsi_in(sc)->length); in iscsi_prep_bidi_ahs()
277 if (hdr_lun != task->sc->device->lun) in iscsi_check_tmf_restrictions()
339 struct scsi_cmnd *sc = task->sc; in iscsi_prep_scsi_cmd_pdu() local
369 int_to_scsilun(sc->device->lun, &hdr->lun); in iscsi_prep_scsi_cmd_pdu()
372 cmd_len = sc->cmd_len; in iscsi_prep_scsi_cmd_pdu()
381 memcpy(hdr->cdb, sc->cmnd, cmd_len); in iscsi_prep_scsi_cmd_pdu()
384 if (scsi_bidi_cmnd(sc)) { in iscsi_prep_scsi_cmd_pdu()
391 if (scsi_get_prot_op(sc) != SCSI_PROT_NORMAL) in iscsi_prep_scsi_cmd_pdu()
394 transfer_length = scsi_transfer_length(sc); in iscsi_prep_scsi_cmd_pdu()
396 if (sc->sc_data_direction == DMA_TO_DEVICE) { in iscsi_prep_scsi_cmd_pdu()
443 if (sc->sc_data_direction == DMA_FROM_DEVICE) in iscsi_prep_scsi_cmd_pdu()
466 scsi_bidi_cmnd(sc) ? "bidirectional" : in iscsi_prep_scsi_cmd_pdu()
467 sc->sc_data_direction == DMA_TO_DEVICE ? in iscsi_prep_scsi_cmd_pdu()
468 "write" : "read", conn->id, sc, sc->cmnd[0], in iscsi_prep_scsi_cmd_pdu()
470 scsi_bidi_cmnd(sc) ? scsi_in(sc)->length : 0, in iscsi_prep_scsi_cmd_pdu()
488 struct scsi_cmnd *sc = task->sc; in iscsi_free_task() local
492 task->itt, task->state, task->sc); in iscsi_free_task()
496 task->sc = NULL; in iscsi_free_task()
505 if (sc) { in iscsi_free_task()
507 sc->SCp.ptr = NULL; in iscsi_free_task()
513 sc->scsi_done(sc); in iscsi_free_task()
554 task->itt, task->state, task->sc); in iscsi_complete_task()
609 struct scsi_cmnd *sc; in fail_scsi_task() local
617 sc = task->sc; in fail_scsi_task()
618 if (!sc) in fail_scsi_task()
634 sc->result = err << 16; in fail_scsi_task()
635 if (!scsi_bidi_cmnd(sc)) in fail_scsi_task()
636 scsi_set_resid(sc, scsi_bufflen(sc)); in fail_scsi_task()
638 scsi_out(sc)->resid = scsi_out(sc)->length; in fail_scsi_task()
639 scsi_in(sc)->resid = scsi_in(sc)->length; in fail_scsi_task()
749 task->sc = NULL; in __iscsi_conn_send_pdu()
832 struct scsi_cmnd *sc = task->sc; in iscsi_scsi_cmd_rsp() local
837 sc->result = (DID_OK << 16) | rhdr->cmd_status; in iscsi_scsi_cmd_rsp()
852 sc->result = DRIVER_SENSE << 24 | in iscsi_scsi_cmd_rsp()
854 scsi_build_sense_buffer(1, sc->sense_buffer, in iscsi_scsi_cmd_rsp()
856 scsi_set_sense_information(sc->sense_buffer, in iscsi_scsi_cmd_rsp()
864 sc->result = DID_ERROR << 16; in iscsi_scsi_cmd_rsp()
876 sc->result = DID_BAD_TARGET << 16; in iscsi_scsi_cmd_rsp()
884 memcpy(sc->sense_buffer, data + 2, in iscsi_scsi_cmd_rsp()
895 if (scsi_bidi_cmnd(sc) && res_count > 0 && in iscsi_scsi_cmd_rsp()
897 res_count <= scsi_in(sc)->length)) in iscsi_scsi_cmd_rsp()
898 scsi_in(sc)->resid = res_count; in iscsi_scsi_cmd_rsp()
900 sc->result = (DID_BAD_TARGET << 16) | rhdr->cmd_status; in iscsi_scsi_cmd_rsp()
909 res_count <= scsi_bufflen(sc))) in iscsi_scsi_cmd_rsp()
911 scsi_set_resid(sc, res_count); in iscsi_scsi_cmd_rsp()
913 sc->result = (DID_BAD_TARGET << 16) | rhdr->cmd_status; in iscsi_scsi_cmd_rsp()
917 sc, sc->result, task->itt); in iscsi_scsi_cmd_rsp()
933 struct scsi_cmnd *sc = task->sc; in iscsi_data_in_rsp() local
939 sc->result = (DID_OK << 16) | rhdr->cmd_status; in iscsi_data_in_rsp()
947 res_count <= scsi_in(sc)->length)) in iscsi_data_in_rsp()
948 scsi_in(sc)->resid = res_count; in iscsi_data_in_rsp()
950 sc->result = (DID_BAD_TARGET << 16) | rhdr->cmd_status; in iscsi_data_in_rsp()
955 sc, sc->result, task->itt); in iscsi_data_in_rsp()
1356 if (!task || !task->sc) in iscsi_itt_to_ctask()
1359 if (task->sc->SCp.phase != conn->session->age) { in iscsi_itt_to_ctask()
1362 task->sc->SCp.phase, conn->session->age); in iscsi_itt_to_ctask()
1608 struct scsi_cmnd *sc) in iscsi_alloc_task() argument
1616 sc->SCp.phase = conn->session->age; in iscsi_alloc_task()
1617 sc->SCp.ptr = (char *) task; in iscsi_alloc_task()
1622 task->sc = sc; in iscsi_alloc_task()
1644 int iscsi_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *sc) in iscsi_queuecommand() argument
1653 sc->result = 0; in iscsi_queuecommand()
1654 sc->SCp.ptr = NULL; in iscsi_queuecommand()
1658 cls_session = starget_to_session(scsi_target(sc->device)); in iscsi_queuecommand()
1664 sc->result = reason; in iscsi_queuecommand()
1679 sc->result = DID_IMM_RETRY << 16; in iscsi_queuecommand()
1683 sc->result = DID_IMM_RETRY << 16; in iscsi_queuecommand()
1687 sc->result = DID_TRANSPORT_FAILFAST << 16; in iscsi_queuecommand()
1691 sc->result = DID_NO_CONNECT << 16; in iscsi_queuecommand()
1695 sc->result = DID_NO_CONNECT << 16; in iscsi_queuecommand()
1703 sc->result = DID_NO_CONNECT << 16; in iscsi_queuecommand()
1709 sc->result = DID_REQUEUE; in iscsi_queuecommand()
1718 task = iscsi_alloc_task(conn, sc); in iscsi_queuecommand()
1731 sc->result = DID_ABORT << 16; in iscsi_queuecommand()
1754 sc->cmnd[0], reason); in iscsi_queuecommand()
1762 sc->cmnd[0], reason); in iscsi_queuecommand()
1763 if (!scsi_bidi_cmnd(sc)) in iscsi_queuecommand()
1764 scsi_set_resid(sc, scsi_bufflen(sc)); in iscsi_queuecommand()
1766 scsi_out(sc)->resid = scsi_out(sc)->length; in iscsi_queuecommand()
1767 scsi_in(sc)->resid = scsi_in(sc)->length; in iscsi_queuecommand()
1769 sc->scsi_done(sc); in iscsi_queuecommand()
1860 if (!task->sc || task->state == ISCSI_TASK_FREE) in fail_scsi_tasks()
1863 if (lun != -1 && lun != task->sc->device->lun) in fail_scsi_tasks()
1868 task->sc, task->itt, task->state); in fail_scsi_tasks()
1933 static enum blk_eh_timer_return iscsi_eh_cmd_timed_out(struct scsi_cmnd *sc) in iscsi_eh_cmd_timed_out() argument
1942 cls_session = starget_to_session(scsi_target(sc->device)); in iscsi_eh_cmd_timed_out()
1945 ISCSI_DBG_EH(session, "scsi cmd %p timedout\n", sc); in iscsi_eh_cmd_timed_out()
1948 task = (struct iscsi_task *)sc->SCp.ptr; in iscsi_eh_cmd_timed_out()
2004 if (!running_task->sc || running_task == task || in iscsi_eh_cmd_timed_out()
2012 if (time_after(running_task->sc->jiffies_at_alloc, in iscsi_eh_cmd_timed_out()
2013 task->sc->jiffies_at_alloc)) in iscsi_eh_cmd_timed_out()
2123 int iscsi_eh_abort(struct scsi_cmnd *sc) in iscsi_eh_abort() argument
2132 cls_session = starget_to_session(scsi_target(sc->device)); in iscsi_eh_abort()
2135 ISCSI_DBG_EH(session, "aborting sc %p\n", sc); in iscsi_eh_abort()
2143 if (!sc->SCp.ptr) { in iscsi_eh_abort()
2156 sc->SCp.phase != session->age) { in iscsi_eh_abort()
2168 task = (struct iscsi_task *)sc->SCp.ptr; in iscsi_eh_abort()
2170 sc, task->itt); in iscsi_eh_abort()
2173 if (!task->sc) { in iscsi_eh_abort()
2221 if (!sc->SCp.ptr) { in iscsi_eh_abort()
2239 sc, task->itt); in iscsi_eh_abort()
2246 ISCSI_DBG_EH(session, "abort failed [sc %p itt 0x%x]\n", sc, in iscsi_eh_abort()
2253 static void iscsi_prep_lun_reset_pdu(struct scsi_cmnd *sc, struct iscsi_tm *hdr) in iscsi_prep_lun_reset_pdu() argument
2259 int_to_scsilun(sc->device->lun, &hdr->lun); in iscsi_prep_lun_reset_pdu()
2263 int iscsi_eh_device_reset(struct scsi_cmnd *sc) in iscsi_eh_device_reset() argument
2271 cls_session = starget_to_session(scsi_target(sc->device)); in iscsi_eh_device_reset()
2274 ISCSI_DBG_EH(session, "LU Reset [sc %p lun %llu]\n", sc, in iscsi_eh_device_reset()
2275 sc->device->lun); in iscsi_eh_device_reset()
2293 iscsi_prep_lun_reset_pdu(sc, hdr); in iscsi_eh_device_reset()
2320 fail_scsi_tasks(conn, sc->device->lun, DID_ERROR); in iscsi_eh_device_reset()
2358 int iscsi_eh_session_reset(struct scsi_cmnd *sc) in iscsi_eh_session_reset() argument
2364 cls_session = starget_to_session(scsi_target(sc->device)); in iscsi_eh_session_reset()
2411 static void iscsi_prep_tgt_reset_pdu(struct scsi_cmnd *sc, struct iscsi_tm *hdr) in iscsi_prep_tgt_reset_pdu() argument
2426 int iscsi_eh_target_reset(struct scsi_cmnd *sc) in iscsi_eh_target_reset() argument
2434 cls_session = starget_to_session(scsi_target(sc->device)); in iscsi_eh_target_reset()
2437 ISCSI_DBG_EH(session, "tgt Reset [sc %p tgt %s]\n", sc, in iscsi_eh_target_reset()
2456 iscsi_prep_tgt_reset_pdu(sc, hdr); in iscsi_eh_target_reset()
2507 int iscsi_eh_recover_target(struct scsi_cmnd *sc) in iscsi_eh_recover_target() argument
2511 rc = iscsi_eh_target_reset(sc); in iscsi_eh_recover_target()
2513 rc = iscsi_eh_session_reset(sc); in iscsi_eh_recover_target()
3059 if (task->sc) in fail_mgmt_tasks()