Lines Matching defs:task
450 * @task: iscsi task
454 void iscsi_tcp_cleanup_task(struct iscsi_task *task)
456 struct iscsi_tcp_task *tcp_task = task->dd_data;
460 if (!task->sc)
464 /* flush task's r2t queues */
468 ISCSI_DBG_TCP(task->conn, "pending r2t dropped\n");
484 * @task: scsi command task
486 static int iscsi_tcp_data_in(struct iscsi_conn *conn, struct iscsi_task *task)
489 struct iscsi_tcp_task *tcp_task = task->dd_data;
492 unsigned total_in_length = task->sc->sdb.length;
505 ISCSI_DBG_TCP(conn, "task->exp_datasn(%d) != rhdr->datasn(%d)"
536 struct iscsi_task *task;
543 task = iscsi_itt_to_ctask(conn, hdr->itt);
544 if (!task) {
547 } else if (task->sc->sc_data_direction != DMA_TO_DEVICE) {
553 * so get a ref to the task that will be dropped in the xmit path.
555 if (task->state != ISCSI_TASK_RUNNING) {
560 task->last_xfer = jiffies;
561 __iscsi_get_task(task);
565 /* fill-in new R2T associated with the task */
577 tcp_task = task->dd_data;
580 ISCSI_DBG_TCP(conn, "task->exp_datasn(%d) != rhdr->r2tsn(%d)\n",
589 task->itt);
608 if (data_offset + data_length > task->sc->sdb.length) {
612 data_offset, task->sc->sdb.length);
641 iscsi_requeue_task(task);
645 iscsi_put_task(task);
689 struct iscsi_task *task;
717 task = iscsi_itt_to_ctask(conn, hdr->itt);
718 if (!task)
721 rc = iscsi_tcp_data_in(conn, task);
728 struct iscsi_tcp_task *tcp_task = task->dd_data;
730 struct scsi_data_buffer *sdb = &task->sc->sdb;
748 task->last_xfer = jiffies;
987 * @task: scsi command task
989 int iscsi_tcp_task_init(struct iscsi_task *task)
991 struct iscsi_tcp_task *tcp_task = task->dd_data;
992 struct iscsi_conn *conn = task->conn;
993 struct scsi_cmnd *sc = task->sc;
1001 ISCSI_DBG_TCP(conn, "mtask deq [itt 0x%x]\n", task->itt);
1003 return conn->session->tt->init_pdu(task, 0, task->data_count);
1010 ISCSI_DBG_TCP(conn, "task deq [itt 0x%x imm %d unsol %d]\n",
1011 task->itt, task->imm_count, task->unsol_r2t.data_length);
1013 err = conn->session->tt->init_pdu(task, 0, task->imm_count);
1016 task->imm_count = 0;
1021 static struct iscsi_r2t_info *iscsi_tcp_get_curr_r2t(struct iscsi_task *task)
1023 struct iscsi_tcp_task *tcp_task = task->dd_data;
1026 if (iscsi_task_has_unsol_data(task))
1027 r2t = &task->unsol_r2t;
1034 ISCSI_DBG_TCP(task->conn,
1058 * iscsi_tcp_task_xmit - xmit normal PDU task
1059 * @task: iscsi command task
1065 int iscsi_tcp_task_xmit(struct iscsi_task *task)
1067 struct iscsi_conn *conn = task->conn;
1074 rc = session->tt->xmit_pdu(task);
1079 if (!task->sc) {
1080 if (task->hdr->itt == RESERVED_ITT)
1081 iscsi_put_task(task);
1086 if (task->sc->sc_data_direction != DMA_TO_DEVICE)
1089 r2t = iscsi_tcp_get_curr_r2t(task);
1096 rc = conn->session->tt->alloc_pdu(task, ISCSI_OP_SCSI_DATA_OUT);
1099 iscsi_prep_data_out_pdu(task, r2t, (struct iscsi_data *) task->hdr);
1102 r2t, r2t->datasn - 1, task->hdr->itt,
1105 rc = conn->session->tt->init_pdu(task, r2t->data_offset + r2t->sent,
1156 * initialize per-task: R2T pool and xmit queue
1159 struct iscsi_task *task = session->cmds[cmd_i];
1160 struct iscsi_tcp_task *tcp_task = task->dd_data;
1189 struct iscsi_task *task = session->cmds[i];
1190 struct iscsi_tcp_task *tcp_task = task->dd_data;
1204 struct iscsi_task *task = session->cmds[i];
1205 struct iscsi_tcp_task *tcp_task = task->dd_data;