Lines Matching refs:task
443 void iscsi_tcp_cleanup_task(struct iscsi_task *task) in iscsi_tcp_cleanup_task() argument
445 struct iscsi_tcp_task *tcp_task = task->dd_data; in iscsi_tcp_cleanup_task()
449 if (!task->sc) in iscsi_tcp_cleanup_task()
457 ISCSI_DBG_TCP(task->conn, "pending r2t dropped\n"); in iscsi_tcp_cleanup_task()
475 static int iscsi_tcp_data_in(struct iscsi_conn *conn, struct iscsi_task *task) in iscsi_tcp_data_in() argument
478 struct iscsi_tcp_task *tcp_task = task->dd_data; in iscsi_tcp_data_in()
481 unsigned total_in_length = task->sc->sdb.length; in iscsi_tcp_data_in()
525 struct iscsi_task *task; in iscsi_tcp_r2t_rsp() local
532 task = iscsi_itt_to_ctask(conn, hdr->itt); in iscsi_tcp_r2t_rsp()
533 if (!task) { in iscsi_tcp_r2t_rsp()
536 } else if (task->sc->sc_data_direction != DMA_TO_DEVICE) { in iscsi_tcp_r2t_rsp()
544 if (task->state != ISCSI_TASK_RUNNING) { in iscsi_tcp_r2t_rsp()
549 task->last_xfer = jiffies; in iscsi_tcp_r2t_rsp()
550 if (!iscsi_get_task(task)) { in iscsi_tcp_r2t_rsp()
570 tcp_task = task->dd_data; in iscsi_tcp_r2t_rsp()
582 task->itt); in iscsi_tcp_r2t_rsp()
601 if (data_offset + data_length > task->sc->sdb.length) { in iscsi_tcp_r2t_rsp()
605 data_offset, task->sc->sdb.length); in iscsi_tcp_r2t_rsp()
634 iscsi_requeue_task(task); in iscsi_tcp_r2t_rsp()
638 iscsi_put_task(task); in iscsi_tcp_r2t_rsp()
682 struct iscsi_task *task; in iscsi_tcp_hdr_dissect() local
710 task = iscsi_itt_to_ctask(conn, hdr->itt); in iscsi_tcp_hdr_dissect()
711 if (!task) in iscsi_tcp_hdr_dissect()
714 rc = iscsi_tcp_data_in(conn, task); in iscsi_tcp_hdr_dissect()
721 struct iscsi_tcp_task *tcp_task = task->dd_data; in iscsi_tcp_hdr_dissect()
723 struct scsi_data_buffer *sdb = &task->sc->sdb; in iscsi_tcp_hdr_dissect()
741 task->last_xfer = jiffies; in iscsi_tcp_hdr_dissect()
982 int iscsi_tcp_task_init(struct iscsi_task *task) in iscsi_tcp_task_init() argument
984 struct iscsi_tcp_task *tcp_task = task->dd_data; in iscsi_tcp_task_init()
985 struct iscsi_conn *conn = task->conn; in iscsi_tcp_task_init()
986 struct scsi_cmnd *sc = task->sc; in iscsi_tcp_task_init()
994 ISCSI_DBG_TCP(conn, "mtask deq [itt 0x%x]\n", task->itt); in iscsi_tcp_task_init()
996 return conn->session->tt->init_pdu(task, 0, task->data_count); in iscsi_tcp_task_init()
1004 task->itt, task->imm_count, task->unsol_r2t.data_length); in iscsi_tcp_task_init()
1006 err = conn->session->tt->init_pdu(task, 0, task->imm_count); in iscsi_tcp_task_init()
1009 task->imm_count = 0; in iscsi_tcp_task_init()
1014 static struct iscsi_r2t_info *iscsi_tcp_get_curr_r2t(struct iscsi_task *task) in iscsi_tcp_get_curr_r2t() argument
1016 struct iscsi_tcp_task *tcp_task = task->dd_data; in iscsi_tcp_get_curr_r2t()
1019 if (iscsi_task_has_unsol_data(task)) in iscsi_tcp_get_curr_r2t()
1020 r2t = &task->unsol_r2t; in iscsi_tcp_get_curr_r2t()
1027 ISCSI_DBG_TCP(task->conn, in iscsi_tcp_get_curr_r2t()
1058 int iscsi_tcp_task_xmit(struct iscsi_task *task) in iscsi_tcp_task_xmit() argument
1060 struct iscsi_conn *conn = task->conn; in iscsi_tcp_task_xmit()
1067 rc = session->tt->xmit_pdu(task); in iscsi_tcp_task_xmit()
1072 if (!task->sc) { in iscsi_tcp_task_xmit()
1073 if (task->hdr->itt == RESERVED_ITT) in iscsi_tcp_task_xmit()
1074 iscsi_put_task(task); in iscsi_tcp_task_xmit()
1079 if (task->sc->sc_data_direction != DMA_TO_DEVICE) in iscsi_tcp_task_xmit()
1082 r2t = iscsi_tcp_get_curr_r2t(task); in iscsi_tcp_task_xmit()
1089 rc = conn->session->tt->alloc_pdu(task, ISCSI_OP_SCSI_DATA_OUT); in iscsi_tcp_task_xmit()
1092 iscsi_prep_data_out_pdu(task, r2t, (struct iscsi_data *) task->hdr); in iscsi_tcp_task_xmit()
1095 r2t, r2t->datasn - 1, task->hdr->itt, in iscsi_tcp_task_xmit()
1098 rc = conn->session->tt->init_pdu(task, r2t->data_offset + r2t->sent, in iscsi_tcp_task_xmit()
1152 struct iscsi_task *task = session->cmds[cmd_i]; in iscsi_tcp_r2tpool_alloc() local
1153 struct iscsi_tcp_task *tcp_task = task->dd_data; in iscsi_tcp_r2tpool_alloc()
1182 struct iscsi_task *task = session->cmds[i]; in iscsi_tcp_r2tpool_alloc() local
1183 struct iscsi_tcp_task *tcp_task = task->dd_data; in iscsi_tcp_r2tpool_alloc()
1197 struct iscsi_task *task = session->cmds[i]; in iscsi_tcp_r2tpool_free() local
1198 struct iscsi_tcp_task *tcp_task = task->dd_data; in iscsi_tcp_r2tpool_free()