Lines Matching refs:conn

88 inline void iscsi_conn_queue_xmit(struct iscsi_conn *conn)
90 struct Scsi_Host *shost = conn->session->host;
94 queue_work(ihost->workq, &conn->xmitwork);
98 inline void iscsi_conn_queue_recv(struct iscsi_conn *conn)
100 struct Scsi_Host *shost = conn->session->host;
103 if (ihost->workq && !test_bit(ISCSI_CONN_FLAG_SUSPEND_RX, &conn->flags))
104 queue_work(ihost->workq, &conn->recvwork);
149 struct iscsi_conn *conn = task->conn;
163 if (left > conn->max_xmit_dlength) {
164 hton24(hdr->dlength, conn->max_xmit_dlength);
165 r2t->data_count = conn->max_xmit_dlength;
172 conn->dataout_pdus_cnt++;
222 ISCSI_DBG_SESSION(task->conn->session,
245 struct iscsi_session *session = task->conn->session;
316 struct iscsi_conn *conn = task->conn;
317 struct iscsi_session *session = conn->session;
328 if (conn->session->tt->alloc_pdu) {
329 rc = conn->session->tt->alloc_pdu(task, ISCSI_OP_SCSI_CMD);
341 task->conn->session->age);
350 hdr->exp_statsn = cpu_to_be32(conn->exp_statsn);
391 conn->max_xmit_dlength);
394 conn->max_xmit_dlength);
405 r2t->exp_statsn = cpu_to_be32(conn->exp_statsn);
435 conn->scsicmd_pdus_cnt++;
439 "write" : "read", conn->id, sc, sc->cmnd[0],
456 struct iscsi_conn *conn = task->conn;
457 struct iscsi_session *session = conn->session;
470 if (conn->login_task == task)
508 struct iscsi_session *session = task->conn->session;
527 struct iscsi_conn *conn = task->conn;
529 ISCSI_DBG_SESSION(conn->session,
540 if (READ_ONCE(conn->ping_task) == task)
541 WRITE_ONCE(conn->ping_task, NULL);
561 struct iscsi_conn *conn = task->conn;
563 ISCSI_DBG_SESSION(conn->session, "[itt 0x%x]\n", task->itt);
565 conn->last_recv = jiffies;
566 __iscsi_update_cmdsn(conn->session, exp_cmdsn, max_cmdsn);
576 struct iscsi_conn *conn = task->conn;
598 if (conn->session->running_aborted_task == task) {
599 conn->session->running_aborted_task = NULL;
603 if (conn->task == task) {
604 conn->task = NULL;
617 struct iscsi_conn *conn = task->conn;
629 conn->session->queued_cmdsn--;
645 struct iscsi_session *session = task->conn->session;
652 static int iscsi_prep_mgmt_task(struct iscsi_conn *conn,
655 struct iscsi_session *session = conn->session;
660 if (conn->session->state == ISCSI_STATE_LOGGING_OUT)
664 nop->exp_statsn = cpu_to_be32(conn->exp_statsn);
678 if (conn->c_stage == ISCSI_CONN_STARTED &&
700 * @conn: iscsi conn that the task will be sent on.
706 iscsi_alloc_mgmt_task(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
709 struct iscsi_session *session = conn->session;
715 !test_bit(ISCSI_CONN_FLAG_BOUND, &conn->flags))
725 if (conn->login_task->state != ISCSI_TASK_FREE) {
726 iscsi_conn_printk(KERN_ERR, conn, "Login/Text in "
732 iscsi_conn_printk(KERN_ERR, conn, "Invalid buffer len of %u for login task. Max len is %u\n", data_size, ISCSI_DEF_MAX_RECV_SEG_LEN);
736 task = conn->login_task;
742 iscsi_conn_printk(KERN_ERR, conn, "Can not send data buffer of len %u for op 0x%x\n", data_size, opcode);
746 BUG_ON(conn->c_stage == ISCSI_CONN_INITIAL_STAGE);
747 BUG_ON(conn->c_stage == ISCSI_CONN_STOPPED);
759 task->conn = conn;
770 if (conn->session->tt->alloc_pdu) {
771 if (conn->session->tt->alloc_pdu(task, hdr->opcode)) {
772 iscsi_conn_printk(KERN_ERR, conn, "Could not allocate "
787 task->conn->session->age);
806 struct iscsi_conn *conn = task->conn;
807 struct iscsi_session *session = conn->session;
808 struct iscsi_host *ihost = shost_priv(conn->session->host);
812 rc = iscsi_prep_mgmt_task(conn, task);
820 list_add_tail(&task->running, &conn->mgmtqueue);
821 iscsi_conn_queue_xmit(conn);
827 static int __iscsi_conn_send_pdu(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
833 task = iscsi_alloc_mgmt_task(conn, hdr, data, data_size);
846 struct iscsi_conn *conn = cls_conn->dd_data;
847 struct iscsi_session *session = conn->session;
851 if (__iscsi_conn_send_pdu(conn, hdr, data, data_size))
860 * @conn: iscsi connection
869 static void iscsi_scsi_cmd_rsp(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
874 struct iscsi_session *session = conn->session;
878 conn->exp_statsn = be32_to_cpu(rhdr->statsn) + 1;
913 iscsi_conn_printk(KERN_ERR, conn,
951 conn->scsirsp_pdus_cnt++;
957 * @conn: iscsi connection
965 iscsi_data_in_rsp(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
974 iscsi_update_cmdsn(conn->session, (struct iscsi_nopin *)hdr);
976 conn->exp_statsn = be32_to_cpu(rhdr->statsn) + 1;
989 ISCSI_DBG_SESSION(conn->session, "data in with status done "
992 conn->scsirsp_pdus_cnt++;
996 static void iscsi_tmf_rsp(struct iscsi_conn *conn, struct iscsi_hdr *hdr)
999 struct iscsi_session *session = conn->session;
1001 conn->exp_statsn = be32_to_cpu(hdr->statsn) + 1;
1002 conn->tmfrsp_pdus_cnt++;
1016 static int iscsi_send_nopout(struct iscsi_conn *conn, struct iscsi_nopin *rhdr)
1022 if (READ_ONCE(conn->ping_task))
1037 task = iscsi_alloc_mgmt_task(conn, (struct iscsi_hdr *)&hdr, NULL, 0);
1042 WRITE_ONCE(conn->ping_task, task);
1046 WRITE_ONCE(conn->ping_task, NULL);
1049 iscsi_conn_printk(KERN_ERR, conn, "Could not send nopout\n");
1053 conn->last_ping = jiffies;
1072 struct iscsi_conn *conn = task->conn;
1075 if (READ_ONCE(conn->ping_task) != task) {
1080 if (iscsi_recv_pdu(conn->cls_conn, (struct iscsi_hdr *)nop,
1084 mod_timer(&conn->transport_timer, jiffies + conn->recv_timeout);
1089 static int iscsi_handle_reject(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
1096 conn->exp_statsn = be32_to_cpu(reject->statsn) + 1;
1100 iscsi_conn_printk(KERN_ERR, conn, "Cannot handle rejected "
1111 iscsi_conn_printk(KERN_ERR, conn,
1117 iscsi_conn_printk(KERN_ERR, conn,
1124 * a target can handle one immediate TMF per conn).
1138 spin_unlock(&conn->session->back_lock);
1139 spin_lock(&conn->session->frwd_lock);
1140 iscsi_send_nopout(conn,
1142 spin_unlock(&conn->session->frwd_lock);
1143 spin_lock(&conn->session->back_lock);
1150 task = iscsi_itt_to_task(conn, rejected_pdu.itt);
1152 iscsi_conn_printk(KERN_ERR, conn,
1163 iscsi_conn_printk(KERN_ERR, conn,
1174 * @conn: iscsi connection
1182 struct iscsi_task *iscsi_itt_to_task(struct iscsi_conn *conn, itt_t itt)
1184 struct iscsi_session *session = conn->session;
1191 session->tt->parse_pdu_itt(conn, itt, &i, NULL);
1203 * @conn: iscsi conn
1212 int __iscsi_complete_pdu(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
1215 struct iscsi_session *session = conn->session;
1220 conn->last_recv = jiffies;
1221 rc = iscsi_verify_itt(conn, hdr->itt);
1231 opcode, conn->id, itt, datalen);
1249 iscsi_send_nopout(conn, (struct iscsi_nopin*)hdr);
1254 rc = iscsi_handle_reject(conn, hdr, data, datalen);
1257 conn->exp_statsn = be32_to_cpu(hdr->statsn) + 1;
1258 if (iscsi_recv_pdu(conn->cls_conn, hdr, data, datalen))
1271 task = iscsi_itt_to_ctask(conn, hdr->itt);
1286 task = iscsi_itt_to_task(conn, hdr->itt);
1296 iscsi_scsi_cmd_rsp(conn, hdr, task, data, datalen);
1299 iscsi_data_in_rsp(conn, hdr, task);
1307 conn->exp_statsn = be32_to_cpu(hdr->statsn) + 1;
1324 iscsi_tmf_rsp(conn, hdr);
1333 conn->exp_statsn = be32_to_cpu(hdr->statsn) + 1;
1346 if (iscsi_recv_pdu(conn->cls_conn, hdr, data, datalen))
1353 int iscsi_complete_pdu(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
1358 spin_lock(&conn->session->back_lock);
1359 rc = __iscsi_complete_pdu(conn, hdr, data, datalen);
1360 spin_unlock(&conn->session->back_lock);
1365 int iscsi_verify_itt(struct iscsi_conn *conn, itt_t itt)
1367 struct iscsi_session *session = conn->session;
1374 session->tt->parse_pdu_itt(conn, itt, &i, &age);
1381 iscsi_conn_printk(KERN_ERR, conn,
1388 iscsi_conn_printk(KERN_ERR, conn,
1399 * @conn: iscsi connection
1406 struct iscsi_task *iscsi_itt_to_ctask(struct iscsi_conn *conn, itt_t itt)
1410 if (iscsi_verify_itt(conn, itt))
1413 task = iscsi_itt_to_task(conn, itt);
1417 if (iscsi_cmd(task->sc)->age != conn->session->age) {
1418 iscsi_session_printk(KERN_ERR, conn->session,
1420 iscsi_cmd(task->sc)->age, conn->session->age);
1431 struct iscsi_conn *conn;
1434 conn = session->leadconn;
1435 if (session->state == ISCSI_STATE_TERMINATE || !conn) {
1440 iscsi_get_conn(conn->cls_conn);
1448 iscsi_conn_error_event(conn->cls_conn, err);
1450 iscsi_conn_failure(conn, err);
1451 iscsi_put_conn(conn->cls_conn);
1455 static bool iscsi_set_conn_failed(struct iscsi_conn *conn)
1457 struct iscsi_session *session = conn->session;
1462 if (conn->stop_stage == 0)
1465 set_bit(ISCSI_CONN_FLAG_SUSPEND_TX, &conn->flags);
1466 set_bit(ISCSI_CONN_FLAG_SUSPEND_RX, &conn->flags);
1470 void iscsi_conn_failure(struct iscsi_conn *conn, enum iscsi_err err)
1472 struct iscsi_session *session = conn->session;
1476 needs_evt = iscsi_set_conn_failed(conn);
1480 iscsi_conn_error_event(conn->cls_conn, err);
1484 static int iscsi_check_cmdsn_window_closed(struct iscsi_conn *conn)
1486 struct iscsi_session *session = conn->session;
1501 static int iscsi_xmit_task(struct iscsi_conn *conn, struct iscsi_task *task,
1506 if (!conn->task) {
1519 conn->task = NULL;
1533 if (test_bit(ISCSI_CONN_FLAG_SUSPEND_TX, &conn->flags)) {
1538 conn->task = task;
1542 spin_unlock_bh(&conn->session->frwd_lock);
1543 rc = conn->session->tt->xmit_task(task);
1544 spin_lock_bh(&conn->session->frwd_lock);
1551 * as conn->task above.
1554 conn->task = task;
1569 struct iscsi_conn *conn = task->conn;
1575 spin_lock_bh(&conn->session->frwd_lock);
1577 list_add_tail(&task->running, &conn->requeue);
1585 iscsi_conn_queue_xmit(conn);
1586 spin_unlock_bh(&conn->session->frwd_lock);
1592 * @conn: iscsi connection
1599 static int iscsi_data_xmit(struct iscsi_conn *conn)
1604 spin_lock_bh(&conn->session->frwd_lock);
1605 if (test_bit(ISCSI_CONN_FLAG_SUSPEND_TX, &conn->flags)) {
1606 ISCSI_DBG_SESSION(conn->session, "Tx suspended!\n");
1607 spin_unlock_bh(&conn->session->frwd_lock);
1611 if (conn->task) {
1612 rc = iscsi_xmit_task(conn, conn->task, false);
1623 while (!list_empty(&conn->mgmtqueue)) {
1624 task = list_entry(conn->mgmtqueue.next, struct iscsi_task,
1627 if (iscsi_prep_mgmt_task(conn, task)) {
1629 spin_lock_bh(&conn->session->back_lock);
1631 spin_unlock_bh(&conn->session->back_lock);
1634 rc = iscsi_xmit_task(conn, task, false);
1640 while (!list_empty(&conn->requeue)) {
1642 * we always do fastlogout - conn stop code will clean up.
1644 if (conn->session->state == ISCSI_STATE_LOGGING_OUT)
1647 task = list_entry(conn->requeue.next, struct iscsi_task,
1654 rc = iscsi_xmit_task(conn, task, true);
1657 if (!list_empty(&conn->mgmtqueue))
1662 while (!list_empty(&conn->cmdqueue)) {
1663 task = list_entry(conn->cmdqueue.next, struct iscsi_task,
1666 if (conn->session->state == ISCSI_STATE_LOGGING_OUT) {
1678 rc = iscsi_xmit_task(conn, task, false);
1686 if (!list_empty(&conn->mgmtqueue))
1688 if (!list_empty(&conn->requeue))
1692 spin_unlock_bh(&conn->session->frwd_lock);
1696 spin_unlock_bh(&conn->session->frwd_lock);
1702 struct iscsi_conn *conn =
1709 rc = iscsi_data_xmit(conn);
1713 static inline struct iscsi_task *iscsi_alloc_task(struct iscsi_conn *conn,
1718 if (!kfifo_out(&conn->session->cmdpool.queue,
1722 iscsi_cmd(sc)->age = conn->session->age;
1727 task->conn = conn;
1756 struct iscsi_conn *conn;
1816 conn = session->leadconn;
1817 if (!conn) {
1823 if (test_bit(ISCSI_CONN_FLAG_SUSPEND_TX, &conn->flags)) {
1829 if (iscsi_check_cmdsn_window_closed(conn)) {
1834 task = iscsi_alloc_task(conn, sc);
1857 list_add_tail(&task->running, &conn->cmdqueue);
1858 iscsi_conn_queue_xmit(conn);
1913 static int iscsi_exec_task_mgmt_fn(struct iscsi_conn *conn,
1918 struct iscsi_session *session = conn->session;
1920 if (__iscsi_conn_send_pdu(conn, (struct iscsi_hdr *)hdr, NULL, 0)) {
1922 iscsi_conn_printk(KERN_ERR, conn, "Could not send TMF.\n");
1923 iscsi_conn_failure(conn, ISCSI_ERR_CONN_FAILED);
1927 conn->tmfcmd_pdus_cnt++;
1962 static void fail_scsi_tasks(struct iscsi_conn *conn, u64 lun, int error)
1964 struct iscsi_session *session = conn->session;
2001 * @conn: iscsi conn to stop queueing IO on
2010 void iscsi_suspend_queue(struct iscsi_conn *conn)
2012 spin_lock_bh(&conn->session->frwd_lock);
2013 set_bit(ISCSI_CONN_FLAG_SUSPEND_TX, &conn->flags);
2014 spin_unlock_bh(&conn->session->frwd_lock);
2020 * @conn: iscsi conn to stop processing IO on.
2026 void iscsi_suspend_tx(struct iscsi_conn *conn)
2028 struct Scsi_Host *shost = conn->session->host;
2031 set_bit(ISCSI_CONN_FLAG_SUSPEND_TX, &conn->flags);
2033 flush_work(&conn->xmitwork);
2037 static void iscsi_start_tx(struct iscsi_conn *conn)
2039 clear_bit(ISCSI_CONN_FLAG_SUSPEND_TX, &conn->flags);
2040 iscsi_conn_queue_xmit(conn);
2045 * @conn: iscsi conn to stop.
2047 void iscsi_suspend_rx(struct iscsi_conn *conn)
2049 struct Scsi_Host *shost = conn->session->host;
2052 set_bit(ISCSI_CONN_FLAG_SUSPEND_RX, &conn->flags);
2054 flush_work(&conn->recvwork);
2064 static int iscsi_has_ping_timed_out(struct iscsi_conn *conn)
2066 if (READ_ONCE(conn->ping_task) &&
2067 time_before_eq(conn->last_recv + (conn->recv_timeout * HZ) +
2068 (conn->ping_timeout * HZ), jiffies))
2080 struct iscsi_conn *conn;
2134 conn = session->leadconn;
2135 if (!conn) {
2158 if (!conn->recv_timeout && !conn->ping_timeout)
2164 if (iscsi_has_ping_timed_out(conn)) {
2170 for (i = 0; i < conn->session->cmds_max; i++) {
2171 running_task = conn->session->cmds[i];
2217 if (READ_ONCE(conn->ping_task)) {
2224 iscsi_send_nopout(conn, NULL);
2243 struct iscsi_conn *conn = from_timer(conn, t, transport_timer);
2244 struct iscsi_session *session = conn->session;
2251 recv_timeout = conn->recv_timeout;
2256 last_recv = conn->last_recv;
2258 if (iscsi_has_ping_timed_out(conn)) {
2259 iscsi_conn_printk(KERN_ERR, conn, "ping timeout of %d secs "
2262 conn->ping_timeout, conn->recv_timeout,
2263 last_recv, conn->last_ping, jiffies);
2265 iscsi_conn_failure(conn, ISCSI_ERR_NOP_TIMEDOUT);
2271 ISCSI_DBG_CONN(conn, "Sending nopout as ping\n");
2272 if (iscsi_send_nopout(conn, NULL))
2275 next_timeout = conn->last_ping + (conn->ping_timeout * HZ);
2279 ISCSI_DBG_CONN(conn, "Setting next tmo %lu\n", next_timeout);
2280 mod_timer(&conn->transport_timer, next_timeout);
2286 * iscsi_conn_unbind - prevent queueing to conn.
2287 * @cls_conn: iscsi conn ep is bound to.
2288 * @is_active: is the conn in use for boot or is this for EH/termination
2297 struct iscsi_conn *conn;
2302 conn = cls_conn->dd_data;
2303 session = conn->session;
2312 iscsi_suspend_queue(conn);
2313 iscsi_suspend_tx(conn);
2316 clear_bit(ISCSI_CONN_FLAG_BOUND, &conn->flags);
2325 iscsi_set_conn_failed(conn);
2348 struct iscsi_conn *conn;
2408 conn = session->leadconn;
2409 iscsi_get_conn(conn->cls_conn);
2410 conn->eh_abort_cnt++;
2427 if (iscsi_exec_task_mgmt_fn(conn, hdr, age, session->abort_timeout))
2437 iscsi_suspend_tx(conn);
2448 iscsi_start_tx(conn);
2453 iscsi_conn_failure(conn, ISCSI_ERR_SCSI_EH_SESSION_RST);
2476 iscsi_put_conn(conn->cls_conn);
2486 * The driver might be accessing the task so hold the ref. The conn
2493 iscsi_put_conn(conn->cls_conn);
2513 struct iscsi_conn *conn;
2531 conn = session->leadconn;
2541 if (iscsi_exec_task_mgmt_fn(conn, hdr, session->age,
2552 iscsi_conn_failure(conn, ISCSI_ERR_SCSI_EH_SESSION_RST);
2562 iscsi_suspend_tx(conn);
2566 fail_scsi_tasks(conn, sc->device->lun, DID_ERROR);
2570 iscsi_start_tx(conn);
2607 struct iscsi_conn *conn;
2625 conn = session->leadconn;
2626 iscsi_get_conn(conn->cls_conn);
2631 iscsi_conn_failure(conn, ISCSI_ERR_SCSI_EH_SESSION_RST);
2632 iscsi_put_conn(conn->cls_conn);
2647 session->targetname, conn->persistent_address);
2675 struct iscsi_conn *conn;
2693 conn = session->leadconn;
2703 if (iscsi_exec_task_mgmt_fn(conn, hdr, session->age,
2714 iscsi_conn_failure(conn, ISCSI_ERR_SCSI_EH_SESSION_RST);
2724 iscsi_suspend_tx(conn);
2728 fail_scsi_tasks(conn, -1, DID_ERROR);
2732 iscsi_start_tx(conn);
3176 struct iscsi_conn *conn;
3181 cls_conn = iscsi_alloc_conn(cls_session, sizeof(*conn) + dd_size,
3185 conn = cls_conn->dd_data;
3187 conn->dd_data = cls_conn->dd_data + sizeof(*conn);
3188 conn->session = session;
3189 conn->cls_conn = cls_conn;
3190 conn->c_stage = ISCSI_CONN_INITIAL_STAGE;
3191 conn->id = conn_idx;
3192 conn->exp_statsn = 0;
3194 timer_setup(&conn->transport_timer, iscsi_check_transport_timeouts, 0);
3196 INIT_LIST_HEAD(&conn->mgmtqueue);
3197 INIT_LIST_HEAD(&conn->cmdqueue);
3198 INIT_LIST_HEAD(&conn->requeue);
3199 INIT_WORK(&conn->xmitwork, iscsi_xmitworker);
3204 (void*)&conn->login_task,
3215 conn->login_task->data = conn->data = data;
3224 free_pages((unsigned long) conn->data,
3228 kfifo_in(&session->cmdpool.queue, (void*)&conn->login_task,
3245 struct iscsi_conn *conn = cls_conn->dd_data;
3246 struct iscsi_session *session = conn->session;
3250 del_timer_sync(&conn->transport_timer);
3254 conn->c_stage = ISCSI_CONN_CLEANUP_WAIT;
3255 if (session->leadconn == conn) {
3265 iscsi_suspend_tx(conn);
3268 free_pages((unsigned long) conn->data,
3270 kfree(conn->persistent_address);
3271 kfree(conn->local_ipaddr);
3274 kfifo_in(&session->cmdpool.queue, (void*)&conn->login_task,
3277 if (session->leadconn == conn)
3288 struct iscsi_conn *conn = cls_conn->dd_data;
3289 struct iscsi_session *session = conn->session;
3292 iscsi_conn_printk(KERN_ERR, conn,
3299 iscsi_conn_printk(KERN_INFO, conn, "invalid burst lengths: "
3305 if (conn->ping_timeout && !conn->recv_timeout) {
3306 iscsi_conn_printk(KERN_ERR, conn, "invalid recv timeout of "
3308 conn->recv_timeout = 5;
3311 if (conn->recv_timeout && !conn->ping_timeout) {
3312 iscsi_conn_printk(KERN_ERR, conn, "invalid ping timeout of "
3314 conn->ping_timeout = 5;
3318 conn->c_stage = ISCSI_CONN_STARTED;
3322 conn->last_recv = jiffies;
3323 conn->last_ping = jiffies;
3324 if (conn->recv_timeout && conn->ping_timeout)
3325 mod_timer(&conn->transport_timer,
3326 jiffies + (conn->recv_timeout * HZ));
3328 switch(conn->stop_stage) {
3334 conn->stop_stage = 0;
3341 conn->stop_stage = 0;
3355 fail_mgmt_tasks(struct iscsi_session *session, struct iscsi_conn *conn)
3360 for (i = 0; i < conn->session->cmds_max; i++) {
3361 task = conn->session->cmds[i];
3368 ISCSI_DBG_SESSION(conn->session,
3388 struct iscsi_conn *conn = cls_conn->dd_data;
3389 struct iscsi_session *session = conn->session;
3394 if (conn->stop_stage == STOP_CONN_TERM) {
3407 else if (conn->stop_stage != STOP_CONN_RECOVER)
3410 old_stop_stage = conn->stop_stage;
3411 conn->stop_stage = flag;
3414 del_timer_sync(&conn->transport_timer);
3415 iscsi_suspend_tx(conn);
3418 conn->c_stage = ISCSI_CONN_STOPPED;
3423 * header digest. conn->hdr_size used for optimization
3428 conn->hdrdgst_en = 0;
3429 conn->datadgst_en = 0;
3441 fail_scsi_tasks(conn, -1, DID_TRANSPORT_DISRUPTED);
3442 fail_mgmt_tasks(session, conn);
3453 struct iscsi_conn *conn = cls_conn->dd_data;
3457 session->leadconn = conn;
3459 set_bit(ISCSI_CONN_FLAG_BOUND, &conn->flags);
3472 clear_bit(ISCSI_CONN_FLAG_SUSPEND_RX, &conn->flags);
3473 clear_bit(ISCSI_CONN_FLAG_SUSPEND_TX, &conn->flags);
3500 struct iscsi_conn *conn = cls_conn->dd_data;
3501 struct iscsi_session *session = conn->session;
3518 sscanf(buf, "%d", &conn->ping_timeout);
3521 sscanf(buf, "%d", &conn->recv_timeout);
3524 sscanf(buf, "%d", &conn->max_recv_dlength);
3527 sscanf(buf, "%d", &conn->max_xmit_dlength);
3530 sscanf(buf, "%d", &conn->hdrdgst_en);
3533 sscanf(buf, "%d", &conn->datadgst_en);
3560 sscanf(buf, "%u", &conn->exp_statsn);
3578 sscanf(buf, "%d", &conn->persistent_port);
3581 return iscsi_switch_str_param(&conn->persistent_address, buf);
3602 return iscsi_switch_str_param(&conn->local_ipaddr, buf);
3792 struct iscsi_conn *conn = cls_conn->dd_data;
3797 len = sysfs_emit(buf, "%u\n", conn->ping_timeout);
3800 len = sysfs_emit(buf, "%u\n", conn->recv_timeout);
3803 len = sysfs_emit(buf, "%u\n", conn->max_recv_dlength);
3806 len = sysfs_emit(buf, "%u\n", conn->max_xmit_dlength);
3809 len = sysfs_emit(buf, "%d\n", conn->hdrdgst_en);
3812 len = sysfs_emit(buf, "%d\n", conn->datadgst_en);
3815 len = sysfs_emit(buf, "%d\n", conn->ifmarker_en);
3818 len = sysfs_emit(buf, "%d\n", conn->ofmarker_en);
3821 len = sysfs_emit(buf, "%u\n", conn->exp_statsn);
3824 len = sysfs_emit(buf, "%d\n", conn->persistent_port);
3827 len = sysfs_emit(buf, "%s\n", conn->persistent_address);
3830 len = sysfs_emit(buf, "%u\n", conn->statsn);
3833 len = sysfs_emit(buf, "%u\n", conn->max_segment_size);
3836 len = sysfs_emit(buf, "%u\n", conn->keepalive_tmo);
3839 len = sysfs_emit(buf, "%u\n", conn->local_port);
3842 len = sysfs_emit(buf, "%u\n", conn->tcp_timestamp_stat);
3845 len = sysfs_emit(buf, "%u\n", conn->tcp_nagle_disable);
3848 len = sysfs_emit(buf, "%u\n", conn->tcp_wsf_disable);
3851 len = sysfs_emit(buf, "%u\n", conn->tcp_timer_scale);
3854 len = sysfs_emit(buf, "%u\n", conn->tcp_timestamp_en);
3857 len = sysfs_emit(buf, "%u\n", conn->fragment_disable);
3860 len = sysfs_emit(buf, "%u\n", conn->ipv4_tos);
3863 len = sysfs_emit(buf, "%u\n", conn->ipv6_traffic_class);
3866 len = sysfs_emit(buf, "%u\n", conn->ipv6_flow_label);
3869 len = sysfs_emit(buf, "%u\n", conn->is_fw_assigned_ipv6);
3872 len = sysfs_emit(buf, "%u\n", conn->tcp_xmit_wsf);
3875 len = sysfs_emit(buf, "%u\n", conn->tcp_recv_wsf);
3878 len = sysfs_emit(buf, "%s\n", conn->local_ipaddr);