Lines Matching refs:task

451 void iscsi_tcp_cleanup_task(struct iscsi_task *task)  in iscsi_tcp_cleanup_task()  argument
453 struct iscsi_tcp_task *tcp_task = task->dd_data; in iscsi_tcp_cleanup_task()
457 if (!task->sc) in iscsi_tcp_cleanup_task()
465 ISCSI_DBG_TCP(task->conn, "pending r2t dropped\n"); in iscsi_tcp_cleanup_task()
483 static int iscsi_tcp_data_in(struct iscsi_conn *conn, struct iscsi_task *task) in iscsi_tcp_data_in() argument
486 struct iscsi_tcp_task *tcp_task = task->dd_data; in iscsi_tcp_data_in()
489 unsigned total_in_length = scsi_in(task->sc)->length; in iscsi_tcp_data_in()
526 static int iscsi_tcp_r2t_rsp(struct iscsi_conn *conn, struct iscsi_task *task) in iscsi_tcp_r2t_rsp() argument
529 struct iscsi_tcp_task *tcp_task = task->dd_data; in iscsi_tcp_r2t_rsp()
554 if (!task->sc || session->state != ISCSI_STATE_LOGGED_IN) { in iscsi_tcp_r2t_rsp()
557 task->itt); in iscsi_tcp_r2t_rsp()
574 if (data_offset + data_length > scsi_out(task->sc)->length) { in iscsi_tcp_r2t_rsp()
578 data_offset, scsi_out(task->sc)->length); in iscsi_tcp_r2t_rsp()
605 iscsi_requeue_task(task); in iscsi_tcp_r2t_rsp()
649 struct iscsi_task *task; in iscsi_tcp_hdr_dissect() local
677 task = iscsi_itt_to_ctask(conn, hdr->itt); in iscsi_tcp_hdr_dissect()
678 if (!task) in iscsi_tcp_hdr_dissect()
681 rc = iscsi_tcp_data_in(conn, task); in iscsi_tcp_hdr_dissect()
688 struct iscsi_tcp_task *tcp_task = task->dd_data; in iscsi_tcp_hdr_dissect()
690 struct scsi_data_buffer *sdb = scsi_in(task->sc); in iscsi_tcp_hdr_dissect()
708 task->last_xfer = jiffies; in iscsi_tcp_hdr_dissect()
731 task = iscsi_itt_to_ctask(conn, hdr->itt); in iscsi_tcp_hdr_dissect()
733 if (!task) in iscsi_tcp_hdr_dissect()
737 else if (task->sc->sc_data_direction == DMA_TO_DEVICE) { in iscsi_tcp_hdr_dissect()
738 task->last_xfer = jiffies; in iscsi_tcp_hdr_dissect()
740 rc = iscsi_tcp_r2t_rsp(conn, task); in iscsi_tcp_hdr_dissect()
957 int iscsi_tcp_task_init(struct iscsi_task *task) in iscsi_tcp_task_init() argument
959 struct iscsi_tcp_task *tcp_task = task->dd_data; in iscsi_tcp_task_init()
960 struct iscsi_conn *conn = task->conn; in iscsi_tcp_task_init()
961 struct scsi_cmnd *sc = task->sc; in iscsi_tcp_task_init()
969 ISCSI_DBG_TCP(conn, "mtask deq [itt 0x%x]\n", task->itt); in iscsi_tcp_task_init()
971 return conn->session->tt->init_pdu(task, 0, task->data_count); in iscsi_tcp_task_init()
979 task->itt, task->imm_count, task->unsol_r2t.data_length); in iscsi_tcp_task_init()
981 err = conn->session->tt->init_pdu(task, 0, task->imm_count); in iscsi_tcp_task_init()
984 task->imm_count = 0; in iscsi_tcp_task_init()
989 static struct iscsi_r2t_info *iscsi_tcp_get_curr_r2t(struct iscsi_task *task) in iscsi_tcp_get_curr_r2t() argument
991 struct iscsi_tcp_task *tcp_task = task->dd_data; in iscsi_tcp_get_curr_r2t()
994 if (iscsi_task_has_unsol_data(task)) in iscsi_tcp_get_curr_r2t()
995 r2t = &task->unsol_r2t; in iscsi_tcp_get_curr_r2t()
1002 ISCSI_DBG_TCP(task->conn, in iscsi_tcp_get_curr_r2t()
1033 int iscsi_tcp_task_xmit(struct iscsi_task *task) in iscsi_tcp_task_xmit() argument
1035 struct iscsi_conn *conn = task->conn; in iscsi_tcp_task_xmit()
1042 rc = session->tt->xmit_pdu(task); in iscsi_tcp_task_xmit()
1047 if (!task->sc) { in iscsi_tcp_task_xmit()
1048 if (task->hdr->itt == RESERVED_ITT) in iscsi_tcp_task_xmit()
1049 iscsi_put_task(task); in iscsi_tcp_task_xmit()
1054 if (task->sc->sc_data_direction != DMA_TO_DEVICE) in iscsi_tcp_task_xmit()
1057 r2t = iscsi_tcp_get_curr_r2t(task); in iscsi_tcp_task_xmit()
1064 rc = conn->session->tt->alloc_pdu(task, ISCSI_OP_SCSI_DATA_OUT); in iscsi_tcp_task_xmit()
1067 iscsi_prep_data_out_pdu(task, r2t, (struct iscsi_data *) task->hdr); in iscsi_tcp_task_xmit()
1070 r2t, r2t->datasn - 1, task->hdr->itt, in iscsi_tcp_task_xmit()
1073 rc = conn->session->tt->init_pdu(task, r2t->data_offset + r2t->sent, in iscsi_tcp_task_xmit()
1127 struct iscsi_task *task = session->cmds[cmd_i]; in iscsi_tcp_r2tpool_alloc() local
1128 struct iscsi_tcp_task *tcp_task = task->dd_data; in iscsi_tcp_r2tpool_alloc()
1157 struct iscsi_task *task = session->cmds[i]; in iscsi_tcp_r2tpool_alloc() local
1158 struct iscsi_tcp_task *tcp_task = task->dd_data; in iscsi_tcp_r2tpool_alloc()
1172 struct iscsi_task *task = session->cmds[i]; in iscsi_tcp_r2tpool_free() local
1173 struct iscsi_tcp_task *tcp_task = task->dd_data; in iscsi_tcp_r2tpool_free()