Lines Matching refs:session

88 	struct Scsi_Host *shost = conn->session->host;  in iscsi_conn_queue_work()
96 static void __iscsi_update_cmdsn(struct iscsi_session *session, in __iscsi_update_cmdsn() argument
106 if (exp_cmdsn != session->exp_cmdsn && in __iscsi_update_cmdsn()
107 !iscsi_sna_lt(exp_cmdsn, session->exp_cmdsn)) in __iscsi_update_cmdsn()
108 session->exp_cmdsn = exp_cmdsn; in __iscsi_update_cmdsn()
110 if (max_cmdsn != session->max_cmdsn && in __iscsi_update_cmdsn()
111 !iscsi_sna_lt(max_cmdsn, session->max_cmdsn)) in __iscsi_update_cmdsn()
112 session->max_cmdsn = max_cmdsn; in __iscsi_update_cmdsn()
115 void iscsi_update_cmdsn(struct iscsi_session *session, struct iscsi_nopin *hdr) in iscsi_update_cmdsn() argument
117 __iscsi_update_cmdsn(session, be32_to_cpu(hdr->exp_cmdsn), in iscsi_update_cmdsn()
210 ISCSI_DBG_SESSION(task->conn->session, in iscsi_prep_ecdb_ahs()
233 struct iscsi_session *session = task->conn->session; in iscsi_check_tmf_restrictions() local
234 struct iscsi_tm *tmf = &session->tmhdr; in iscsi_check_tmf_restrictions()
237 if (session->tmf_state == TMF_INITIAL) in iscsi_check_tmf_restrictions()
257 iscsi_session_printk(KERN_INFO, session, in iscsi_check_tmf_restrictions()
266 if (session->fast_abort) { in iscsi_check_tmf_restrictions()
267 iscsi_session_printk(KERN_INFO, session, in iscsi_check_tmf_restrictions()
282 ISCSI_DBG_SESSION(session, in iscsi_check_tmf_restrictions()
305 struct iscsi_session *session = conn->session; in iscsi_prep_scsi_cmd_pdu() local
316 if (conn->session->tt->alloc_pdu) { in iscsi_prep_scsi_cmd_pdu()
317 rc = conn->session->tt->alloc_pdu(task, ISCSI_OP_SCSI_CMD); in iscsi_prep_scsi_cmd_pdu()
325 if (session->tt->parse_pdu_itt) in iscsi_prep_scsi_cmd_pdu()
329 task->conn->session->age); in iscsi_prep_scsi_cmd_pdu()
376 if (session->imm_data_en) { in iscsi_prep_scsi_cmd_pdu()
377 if (transfer_length >= session->first_burst) in iscsi_prep_scsi_cmd_pdu()
378 task->imm_count = min(session->first_burst, in iscsi_prep_scsi_cmd_pdu()
387 if (!session->initial_r2t_en) { in iscsi_prep_scsi_cmd_pdu()
388 r2t->data_length = min(session->first_burst, in iscsi_prep_scsi_cmd_pdu()
415 hdr->cmdsn = task->cmdsn = cpu_to_be32(session->cmdsn); in iscsi_prep_scsi_cmd_pdu()
417 if (session->tt->init_task && session->tt->init_task(task)) in iscsi_prep_scsi_cmd_pdu()
421 session->cmdsn++; in iscsi_prep_scsi_cmd_pdu()
424 ISCSI_DBG_SESSION(session, "iscsi prep [%s cid %d sc %p cdb 0x%x " in iscsi_prep_scsi_cmd_pdu()
429 session->cmdsn, in iscsi_prep_scsi_cmd_pdu()
430 session->max_cmdsn - session->exp_cmdsn + 1); in iscsi_prep_scsi_cmd_pdu()
445 struct iscsi_session *session = conn->session; in iscsi_free_task() local
449 ISCSI_DBG_SESSION(session, "freeing task itt 0x%x state %d sc %p\n", in iscsi_free_task()
452 session->tt->cleanup_task(task); in iscsi_free_task()
461 kfifo_in(&session->cmdpool.queue, (void*)&task, sizeof(void*)); in iscsi_free_task()
490 struct iscsi_session *session = task->conn->session; in iscsi_put_task() local
493 spin_lock_bh(&session->back_lock); in iscsi_put_task()
495 spin_unlock_bh(&session->back_lock); in iscsi_put_task()
510 ISCSI_DBG_SESSION(conn->session, in iscsi_complete_task()
544 ISCSI_DBG_SESSION(conn->session, "[itt 0x%x]\n", task->itt); in iscsi_complete_scsi_task()
547 __iscsi_update_cmdsn(conn->session, exp_cmdsn, max_cmdsn); in iscsi_complete_scsi_task()
576 if (conn->session->running_aborted_task == task) { in cleanup_queued_task()
577 conn->session->running_aborted_task = NULL; in cleanup_queued_task()
599 spin_lock_bh(&conn->session->back_lock); in fail_scsi_task()
601 spin_unlock_bh(&conn->session->back_lock); in fail_scsi_task()
610 conn->session->queued_cmdsn--; in fail_scsi_task()
622 spin_unlock_bh(&conn->session->back_lock); in fail_scsi_task()
628 struct iscsi_session *session = conn->session; in iscsi_prep_mgmt_task() local
633 if (conn->session->state == ISCSI_STATE_LOGGING_OUT) in iscsi_prep_mgmt_task()
641 nop->cmdsn = cpu_to_be32(session->cmdsn); in iscsi_prep_mgmt_task()
653 session->queued_cmdsn++; in iscsi_prep_mgmt_task()
654 session->cmdsn++; in iscsi_prep_mgmt_task()
658 if (session->tt->init_task && session->tt->init_task(task)) in iscsi_prep_mgmt_task()
662 session->state = ISCSI_STATE_LOGGING_OUT; in iscsi_prep_mgmt_task()
665 ISCSI_DBG_SESSION(session, "mgmtpdu [op 0x%x hdr->itt 0x%x " in iscsi_prep_mgmt_task()
675 struct iscsi_session *session = conn->session; in __iscsi_conn_send_pdu() local
676 struct iscsi_host *ihost = shost_priv(session->host); in __iscsi_conn_send_pdu()
681 if (session->state == ISCSI_STATE_TERMINATE) in __iscsi_conn_send_pdu()
704 if (session->state != ISCSI_STATE_LOGGED_IN) in __iscsi_conn_send_pdu()
715 if (!kfifo_out(&session->cmdpool.queue, in __iscsi_conn_send_pdu()
736 if (conn->session->tt->alloc_pdu) { in __iscsi_conn_send_pdu()
737 if (conn->session->tt->alloc_pdu(task, hdr->opcode)) { in __iscsi_conn_send_pdu()
749 if (session->tt->parse_pdu_itt) in __iscsi_conn_send_pdu()
753 task->conn->session->age); in __iscsi_conn_send_pdu()
763 if (session->tt->xmit_task(task)) in __iscsi_conn_send_pdu()
774 spin_lock(&session->back_lock); in __iscsi_conn_send_pdu()
776 spin_unlock(&session->back_lock); in __iscsi_conn_send_pdu()
784 struct iscsi_session *session = conn->session; in iscsi_conn_send_pdu() local
787 spin_lock_bh(&session->frwd_lock); in iscsi_conn_send_pdu()
790 spin_unlock_bh(&session->frwd_lock); in iscsi_conn_send_pdu()
811 struct iscsi_session *session = conn->session; in iscsi_scsi_cmd_rsp() local
814 iscsi_update_cmdsn(session, (struct iscsi_nopin*)rhdr); in iscsi_scsi_cmd_rsp()
828 BUG_ON(!session->tt->check_protection); in iscsi_scsi_cmd_rsp()
830 ascq = session->tt->check_protection(task, &sector); in iscsi_scsi_cmd_rsp()
863 ISCSI_DBG_SESSION(session, "copied %d bytes of sense\n", in iscsi_scsi_cmd_rsp()
886 ISCSI_DBG_SESSION(session, "cmd rsp done [sc %p res %d itt 0x%x]\n", in iscsi_scsi_cmd_rsp()
911 iscsi_update_cmdsn(conn->session, (struct iscsi_nopin *)hdr); in iscsi_data_in_rsp()
926 ISCSI_DBG_SESSION(conn->session, "data in with status done " in iscsi_data_in_rsp()
936 struct iscsi_session *session = conn->session; in iscsi_tmf_rsp() local
941 if (session->tmf_state != TMF_QUEUED) in iscsi_tmf_rsp()
945 session->tmf_state = TMF_SUCCESS; in iscsi_tmf_rsp()
947 session->tmf_state = TMF_NOT_FOUND; in iscsi_tmf_rsp()
949 session->tmf_state = TMF_FAILED; in iscsi_tmf_rsp()
950 wake_up(&session->ehwait); in iscsi_tmf_rsp()
1068 spin_unlock(&conn->session->back_lock); in iscsi_handle_reject()
1069 spin_lock(&conn->session->frwd_lock); in iscsi_handle_reject()
1072 spin_unlock(&conn->session->frwd_lock); in iscsi_handle_reject()
1073 spin_lock(&conn->session->back_lock); in iscsi_handle_reject()
1114 struct iscsi_session *session = conn->session; in iscsi_itt_to_task() local
1120 if (session->tt->parse_pdu_itt) in iscsi_itt_to_task()
1121 session->tt->parse_pdu_itt(conn, itt, &i, NULL); in iscsi_itt_to_task()
1124 if (i >= session->cmds_max) in iscsi_itt_to_task()
1127 return session->cmds[i]; in iscsi_itt_to_task()
1145 struct iscsi_session *session = conn->session; in __iscsi_complete_pdu() local
1160 ISCSI_DBG_SESSION(session, "[op 0x%x cid %d itt 0x%x len %d]\n", in __iscsi_complete_pdu()
1164 iscsi_update_cmdsn(session, (struct iscsi_nopin*)hdr); in __iscsi_complete_pdu()
1177 spin_unlock(&session->back_lock); in __iscsi_complete_pdu()
1178 spin_lock(&session->frwd_lock); in __iscsi_complete_pdu()
1180 spin_unlock(&session->frwd_lock); in __iscsi_complete_pdu()
1181 spin_lock(&session->back_lock); in __iscsi_complete_pdu()
1232 iscsi_update_cmdsn(session, (struct iscsi_nopin*)hdr); in __iscsi_complete_pdu()
1241 iscsi_update_cmdsn(session, (struct iscsi_nopin*)hdr); in __iscsi_complete_pdu()
1248 iscsi_update_cmdsn(session, (struct iscsi_nopin*)hdr); in __iscsi_complete_pdu()
1258 iscsi_update_cmdsn(session, (struct iscsi_nopin*)hdr); in __iscsi_complete_pdu()
1288 spin_lock(&conn->session->back_lock); in iscsi_complete_pdu()
1290 spin_unlock(&conn->session->back_lock); in iscsi_complete_pdu()
1297 struct iscsi_session *session = conn->session; in iscsi_verify_itt() local
1303 if (session->tt->parse_pdu_itt) in iscsi_verify_itt()
1304 session->tt->parse_pdu_itt(conn, itt, &i, &age); in iscsi_verify_itt()
1310 if (age != session->age) { in iscsi_verify_itt()
1313 (__force u32)itt, session->age); in iscsi_verify_itt()
1317 if (i >= session->cmds_max) { in iscsi_verify_itt()
1320 "%u.\n", i, session->cmds_max); in iscsi_verify_itt()
1347 if (task->sc->SCp.phase != conn->session->age) { in iscsi_itt_to_ctask()
1348 iscsi_session_printk(KERN_ERR, conn->session, in iscsi_itt_to_ctask()
1350 task->sc->SCp.phase, conn->session->age); in iscsi_itt_to_ctask()
1358 void iscsi_session_failure(struct iscsi_session *session, in iscsi_session_failure() argument
1363 spin_lock_bh(&session->frwd_lock); in iscsi_session_failure()
1364 conn = session->leadconn; in iscsi_session_failure()
1365 if (session->state == ISCSI_STATE_TERMINATE || !conn) { in iscsi_session_failure()
1366 spin_unlock_bh(&session->frwd_lock); in iscsi_session_failure()
1371 spin_unlock_bh(&session->frwd_lock); in iscsi_session_failure()
1387 struct iscsi_session *session = conn->session; in iscsi_set_conn_failed() local
1389 if (session->state == ISCSI_STATE_FAILED) in iscsi_set_conn_failed()
1393 session->state = ISCSI_STATE_FAILED; in iscsi_set_conn_failed()
1402 struct iscsi_session *session = conn->session; in iscsi_conn_failure() local
1405 spin_lock_bh(&session->frwd_lock); in iscsi_conn_failure()
1407 spin_unlock_bh(&session->frwd_lock); in iscsi_conn_failure()
1416 struct iscsi_session *session = conn->session; in iscsi_check_cmdsn_window_closed() local
1421 if (!iscsi_sna_lte(session->queued_cmdsn, session->max_cmdsn)) { in iscsi_check_cmdsn_window_closed()
1422 ISCSI_DBG_SESSION(session, "iSCSI CmdSN closed. ExpCmdSn " in iscsi_check_cmdsn_window_closed()
1424 session->exp_cmdsn, session->max_cmdsn, in iscsi_check_cmdsn_window_closed()
1425 session->cmdsn, session->queued_cmdsn); in iscsi_check_cmdsn_window_closed()
1436 spin_lock_bh(&conn->session->back_lock); in iscsi_xmit_task()
1463 spin_unlock_bh(&conn->session->back_lock); in iscsi_xmit_task()
1466 spin_unlock_bh(&conn->session->back_lock); in iscsi_xmit_task()
1468 spin_unlock_bh(&conn->session->frwd_lock); in iscsi_xmit_task()
1469 rc = conn->session->tt->xmit_task(task); in iscsi_xmit_task()
1470 spin_lock_bh(&conn->session->frwd_lock); in iscsi_xmit_task()
1476 spin_lock(&conn->session->back_lock); in iscsi_xmit_task()
1487 spin_unlock(&conn->session->back_lock); in iscsi_xmit_task()
1505 spin_lock_bh(&conn->session->frwd_lock); in iscsi_requeue_task()
1516 spin_unlock_bh(&conn->session->frwd_lock); in iscsi_requeue_task()
1534 spin_lock_bh(&conn->session->frwd_lock); in iscsi_data_xmit()
1536 ISCSI_DBG_SESSION(conn->session, "Tx suspended!\n"); in iscsi_data_xmit()
1537 spin_unlock_bh(&conn->session->frwd_lock); in iscsi_data_xmit()
1559 spin_lock_bh(&conn->session->back_lock); in iscsi_data_xmit()
1561 spin_unlock_bh(&conn->session->back_lock); in iscsi_data_xmit()
1574 if (conn->session->state == ISCSI_STATE_LOGGING_OUT) { in iscsi_data_xmit()
1602 if (conn->session->state == ISCSI_STATE_LOGGING_OUT) in iscsi_data_xmit()
1618 spin_unlock_bh(&conn->session->frwd_lock); in iscsi_data_xmit()
1622 spin_unlock_bh(&conn->session->frwd_lock); in iscsi_data_xmit()
1644 if (!kfifo_out(&conn->session->cmdpool.queue, in iscsi_alloc_task()
1648 sc->SCp.phase = conn->session->age; in iscsi_alloc_task()
1681 struct iscsi_session *session; in iscsi_queuecommand() local
1691 session = cls_session->dd_data; in iscsi_queuecommand()
1692 spin_lock_bh(&session->frwd_lock); in iscsi_queuecommand()
1700 if (session->state != ISCSI_STATE_LOGGED_IN) { in iscsi_queuecommand()
1707 switch (session->state) { in iscsi_queuecommand()
1742 conn = session->leadconn; in iscsi_queuecommand()
1777 if (session->tt->xmit_task(task)) { in iscsi_queuecommand()
1778 session->cmdsn--; in iscsi_queuecommand()
1787 session->queued_cmdsn++; in iscsi_queuecommand()
1788 spin_unlock_bh(&session->frwd_lock); in iscsi_queuecommand()
1792 spin_lock_bh(&session->back_lock); in iscsi_queuecommand()
1794 spin_unlock_bh(&session->back_lock); in iscsi_queuecommand()
1796 spin_unlock_bh(&session->frwd_lock); in iscsi_queuecommand()
1797 ISCSI_DBG_SESSION(session, "cmd 0x%x rejected (%d)\n", in iscsi_queuecommand()
1802 spin_lock_bh(&session->back_lock); in iscsi_queuecommand()
1804 spin_unlock_bh(&session->back_lock); in iscsi_queuecommand()
1806 spin_unlock_bh(&session->frwd_lock); in iscsi_queuecommand()
1807 ISCSI_DBG_SESSION(session, "iscsi: cmd 0x%x is not queued (%d)\n", in iscsi_queuecommand()
1818 struct iscsi_session *session = cls_session->dd_data; in iscsi_target_alloc() local
1820 starget->can_queue = session->scsi_cmds_max; in iscsi_target_alloc()
1827 struct iscsi_session *session = from_timer(session, t, tmf_timer); in iscsi_tmf_timedout() local
1829 spin_lock(&session->frwd_lock); in iscsi_tmf_timedout()
1830 if (session->tmf_state == TMF_QUEUED) { in iscsi_tmf_timedout()
1831 session->tmf_state = TMF_TIMEDOUT; in iscsi_tmf_timedout()
1832 ISCSI_DBG_EH(session, "tmf timedout\n"); in iscsi_tmf_timedout()
1834 wake_up(&session->ehwait); in iscsi_tmf_timedout()
1836 spin_unlock(&session->frwd_lock); in iscsi_tmf_timedout()
1842 __must_hold(&session->frwd_lock) in iscsi_exec_task_mgmt_fn()
1844 struct iscsi_session *session = conn->session; in iscsi_exec_task_mgmt_fn() local
1850 spin_unlock_bh(&session->frwd_lock); in iscsi_exec_task_mgmt_fn()
1853 spin_lock_bh(&session->frwd_lock); in iscsi_exec_task_mgmt_fn()
1857 session->tmf_timer.expires = timeout * HZ + jiffies; in iscsi_exec_task_mgmt_fn()
1858 add_timer(&session->tmf_timer); in iscsi_exec_task_mgmt_fn()
1859 ISCSI_DBG_EH(session, "tmf set timeout\n"); in iscsi_exec_task_mgmt_fn()
1861 spin_unlock_bh(&session->frwd_lock); in iscsi_exec_task_mgmt_fn()
1862 mutex_unlock(&session->eh_mutex); in iscsi_exec_task_mgmt_fn()
1872 wait_event_interruptible(session->ehwait, age != session->age || in iscsi_exec_task_mgmt_fn()
1873 session->state != ISCSI_STATE_LOGGED_IN || in iscsi_exec_task_mgmt_fn()
1874 session->tmf_state != TMF_QUEUED); in iscsi_exec_task_mgmt_fn()
1877 del_timer_sync(&session->tmf_timer); in iscsi_exec_task_mgmt_fn()
1879 mutex_lock(&session->eh_mutex); in iscsi_exec_task_mgmt_fn()
1880 spin_lock_bh(&session->frwd_lock); in iscsi_exec_task_mgmt_fn()
1882 if (age != session->age || in iscsi_exec_task_mgmt_fn()
1883 session->state != ISCSI_STATE_LOGGED_IN) in iscsi_exec_task_mgmt_fn()
1893 struct iscsi_session *session = conn->session; in fail_scsi_tasks() local
1897 spin_lock_bh(&session->back_lock); in fail_scsi_tasks()
1898 for (i = 0; i < session->cmds_max; i++) { in fail_scsi_tasks()
1899 task = session->cmds[i]; in fail_scsi_tasks()
1907 spin_unlock_bh(&session->back_lock); in fail_scsi_tasks()
1909 ISCSI_DBG_SESSION(session, in fail_scsi_tasks()
1914 spin_unlock_bh(&session->frwd_lock); in fail_scsi_tasks()
1916 spin_lock_bh(&session->frwd_lock); in fail_scsi_tasks()
1918 spin_lock_bh(&session->back_lock); in fail_scsi_tasks()
1921 spin_unlock_bh(&session->back_lock); in fail_scsi_tasks()
1937 spin_lock_bh(&conn->session->frwd_lock); in iscsi_suspend_queue()
1939 spin_unlock_bh(&conn->session->frwd_lock); in iscsi_suspend_queue()
1953 struct Scsi_Host *shost = conn->session->host; in iscsi_suspend_tx()
1989 struct iscsi_session *session; in iscsi_eh_cmd_timed_out() local
1994 session = cls_session->dd_data; in iscsi_eh_cmd_timed_out()
1996 ISCSI_DBG_EH(session, "scsi cmd %p timedout\n", sc); in iscsi_eh_cmd_timed_out()
1998 spin_lock_bh(&session->frwd_lock); in iscsi_eh_cmd_timed_out()
1999 spin_lock(&session->back_lock); in iscsi_eh_cmd_timed_out()
2007 spin_unlock(&session->back_lock); in iscsi_eh_cmd_timed_out()
2011 spin_unlock(&session->back_lock); in iscsi_eh_cmd_timed_out()
2013 if (session->state != ISCSI_STATE_LOGGED_IN) { in iscsi_eh_cmd_timed_out()
2023 ISCSI_DBG_EH(session, "sc on shutdown, handled\n"); in iscsi_eh_cmd_timed_out()
2035 conn = session->leadconn; in iscsi_eh_cmd_timed_out()
2050 ISCSI_DBG_EH(session, "Command making progress. Asking " in iscsi_eh_cmd_timed_out()
2070 spin_lock(&session->back_lock); in iscsi_eh_cmd_timed_out()
2071 for (i = 0; i < conn->session->cmds_max; i++) { in iscsi_eh_cmd_timed_out()
2072 running_task = conn->session->cmds[i]; in iscsi_eh_cmd_timed_out()
2096 ISCSI_DBG_EH(session, "Command has not made progress " in iscsi_eh_cmd_timed_out()
2103 spin_unlock(&session->back_lock); in iscsi_eh_cmd_timed_out()
2108 spin_unlock(&session->back_lock); in iscsi_eh_cmd_timed_out()
2130 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_cmd_timed_out()
2136 ISCSI_DBG_EH(session, "return %s\n", rc == BLK_EH_RESET_TIMER ? in iscsi_eh_cmd_timed_out()
2145 struct iscsi_session *session = conn->session; in iscsi_check_transport_timeouts() local
2148 spin_lock(&session->frwd_lock); in iscsi_check_transport_timeouts()
2149 if (session->state != ISCSI_STATE_LOGGED_IN) in iscsi_check_transport_timeouts()
2165 spin_unlock(&session->frwd_lock); in iscsi_check_transport_timeouts()
2183 spin_unlock(&session->frwd_lock); in iscsi_check_transport_timeouts()
2197 struct iscsi_session *session; in iscsi_conn_unbind() local
2204 session = conn->session; in iscsi_conn_unbind()
2211 mutex_lock(&session->eh_mutex); in iscsi_conn_unbind()
2216 spin_lock_bh(&session->frwd_lock); in iscsi_conn_unbind()
2223 if (session->state == ISCSI_STATE_LOGGED_IN) in iscsi_conn_unbind()
2226 spin_unlock_bh(&session->frwd_lock); in iscsi_conn_unbind()
2227 mutex_unlock(&session->eh_mutex); in iscsi_conn_unbind()
2246 struct iscsi_session *session; in iscsi_eh_abort() local
2253 session = cls_session->dd_data; in iscsi_eh_abort()
2255 ISCSI_DBG_EH(session, "aborting sc %p\n", sc); in iscsi_eh_abort()
2257 mutex_lock(&session->eh_mutex); in iscsi_eh_abort()
2258 spin_lock_bh(&session->frwd_lock); in iscsi_eh_abort()
2264 ISCSI_DBG_EH(session, "sc never reached iscsi layer or " in iscsi_eh_abort()
2266 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_abort()
2267 mutex_unlock(&session->eh_mutex); in iscsi_eh_abort()
2275 if (!session->leadconn || session->state != ISCSI_STATE_LOGGED_IN || in iscsi_eh_abort()
2276 sc->SCp.phase != session->age) { in iscsi_eh_abort()
2277 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_abort()
2278 mutex_unlock(&session->eh_mutex); in iscsi_eh_abort()
2279 ISCSI_DBG_EH(session, "failing abort due to dropped " in iscsi_eh_abort()
2284 spin_lock(&session->back_lock); in iscsi_eh_abort()
2288 ISCSI_DBG_EH(session, "sc completed while abort in progress\n"); in iscsi_eh_abort()
2290 spin_unlock(&session->back_lock); in iscsi_eh_abort()
2291 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_abort()
2292 mutex_unlock(&session->eh_mutex); in iscsi_eh_abort()
2296 conn = session->leadconn; in iscsi_eh_abort()
2299 age = session->age; in iscsi_eh_abort()
2301 ISCSI_DBG_EH(session, "aborting [sc %p itt 0x%x]\n", sc, task->itt); in iscsi_eh_abort()
2303 spin_unlock(&session->back_lock); in iscsi_eh_abort()
2311 if (session->tmf_state != TMF_INITIAL) in iscsi_eh_abort()
2313 session->tmf_state = TMF_QUEUED; in iscsi_eh_abort()
2315 hdr = &session->tmhdr; in iscsi_eh_abort()
2318 if (iscsi_exec_task_mgmt_fn(conn, hdr, age, session->abort_timeout)) in iscsi_eh_abort()
2321 switch (session->tmf_state) { in iscsi_eh_abort()
2323 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_abort()
2334 spin_lock_bh(&session->frwd_lock); in iscsi_eh_abort()
2336 session->tmf_state = TMF_INITIAL; in iscsi_eh_abort()
2338 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_abort()
2342 session->running_aborted_task = task; in iscsi_eh_abort()
2343 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_abort()
2348 session->tmf_state = TMF_INITIAL; in iscsi_eh_abort()
2351 ISCSI_DBG_EH(session, "sc completed while abort in " in iscsi_eh_abort()
2357 session->tmf_state = TMF_INITIAL; in iscsi_eh_abort()
2362 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_abort()
2364 ISCSI_DBG_EH(session, "abort success [sc %p itt 0x%x]\n", in iscsi_eh_abort()
2368 mutex_unlock(&session->eh_mutex); in iscsi_eh_abort()
2372 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_abort()
2374 ISCSI_DBG_EH(session, "abort failed [sc %p itt 0x%x]\n", sc, in iscsi_eh_abort()
2381 if (!session->running_aborted_task) in iscsi_eh_abort()
2385 mutex_unlock(&session->eh_mutex); in iscsi_eh_abort()
2403 struct iscsi_session *session; in iscsi_eh_device_reset() local
2409 session = cls_session->dd_data; in iscsi_eh_device_reset()
2411 ISCSI_DBG_EH(session, "LU Reset [sc %p lun %llu]\n", sc, in iscsi_eh_device_reset()
2414 mutex_lock(&session->eh_mutex); in iscsi_eh_device_reset()
2415 spin_lock_bh(&session->frwd_lock); in iscsi_eh_device_reset()
2420 if (!session->leadconn || session->state != ISCSI_STATE_LOGGED_IN) in iscsi_eh_device_reset()
2422 conn = session->leadconn; in iscsi_eh_device_reset()
2425 if (session->tmf_state != TMF_INITIAL) in iscsi_eh_device_reset()
2427 session->tmf_state = TMF_QUEUED; in iscsi_eh_device_reset()
2429 hdr = &session->tmhdr; in iscsi_eh_device_reset()
2432 if (iscsi_exec_task_mgmt_fn(conn, hdr, session->age, in iscsi_eh_device_reset()
2433 session->lu_reset_timeout)) { in iscsi_eh_device_reset()
2438 switch (session->tmf_state) { in iscsi_eh_device_reset()
2442 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_device_reset()
2446 session->tmf_state = TMF_INITIAL; in iscsi_eh_device_reset()
2451 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_device_reset()
2455 spin_lock_bh(&session->frwd_lock); in iscsi_eh_device_reset()
2458 session->tmf_state = TMF_INITIAL; in iscsi_eh_device_reset()
2459 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_device_reset()
2465 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_device_reset()
2467 ISCSI_DBG_EH(session, "dev reset result = %s\n", in iscsi_eh_device_reset()
2469 mutex_unlock(&session->eh_mutex); in iscsi_eh_device_reset()
2476 struct iscsi_session *session = cls_session->dd_data; in iscsi_session_recovery_timedout() local
2478 spin_lock_bh(&session->frwd_lock); in iscsi_session_recovery_timedout()
2479 if (session->state != ISCSI_STATE_LOGGED_IN) { in iscsi_session_recovery_timedout()
2480 session->state = ISCSI_STATE_RECOVERY_FAILED; in iscsi_session_recovery_timedout()
2481 wake_up(&session->ehwait); in iscsi_session_recovery_timedout()
2483 spin_unlock_bh(&session->frwd_lock); in iscsi_session_recovery_timedout()
2497 struct iscsi_session *session; in iscsi_eh_session_reset() local
2501 session = cls_session->dd_data; in iscsi_eh_session_reset()
2503 mutex_lock(&session->eh_mutex); in iscsi_eh_session_reset()
2504 spin_lock_bh(&session->frwd_lock); in iscsi_eh_session_reset()
2505 if (session->state == ISCSI_STATE_TERMINATE) { in iscsi_eh_session_reset()
2507 ISCSI_DBG_EH(session, in iscsi_eh_session_reset()
2509 "%s [age %d]\n", session->targetname, in iscsi_eh_session_reset()
2510 session->age); in iscsi_eh_session_reset()
2511 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_session_reset()
2512 mutex_unlock(&session->eh_mutex); in iscsi_eh_session_reset()
2516 conn = session->leadconn; in iscsi_eh_session_reset()
2519 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_session_reset()
2520 mutex_unlock(&session->eh_mutex); in iscsi_eh_session_reset()
2525 ISCSI_DBG_EH(session, "wait for relogin\n"); in iscsi_eh_session_reset()
2526 wait_event_interruptible(session->ehwait, in iscsi_eh_session_reset()
2527 session->state == ISCSI_STATE_TERMINATE || in iscsi_eh_session_reset()
2528 session->state == ISCSI_STATE_LOGGED_IN || in iscsi_eh_session_reset()
2529 session->state == ISCSI_STATE_RECOVERY_FAILED); in iscsi_eh_session_reset()
2533 mutex_lock(&session->eh_mutex); in iscsi_eh_session_reset()
2534 spin_lock_bh(&session->frwd_lock); in iscsi_eh_session_reset()
2535 if (session->state == ISCSI_STATE_LOGGED_IN) { in iscsi_eh_session_reset()
2536 ISCSI_DBG_EH(session, in iscsi_eh_session_reset()
2538 session->targetname, conn->persistent_address); in iscsi_eh_session_reset()
2541 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_session_reset()
2542 mutex_unlock(&session->eh_mutex); in iscsi_eh_session_reset()
2565 struct iscsi_session *session; in iscsi_eh_target_reset() local
2571 session = cls_session->dd_data; in iscsi_eh_target_reset()
2573 ISCSI_DBG_EH(session, "tgt Reset [sc %p tgt %s]\n", sc, in iscsi_eh_target_reset()
2574 session->targetname); in iscsi_eh_target_reset()
2576 mutex_lock(&session->eh_mutex); in iscsi_eh_target_reset()
2577 spin_lock_bh(&session->frwd_lock); in iscsi_eh_target_reset()
2582 if (!session->leadconn || session->state != ISCSI_STATE_LOGGED_IN) in iscsi_eh_target_reset()
2584 conn = session->leadconn; in iscsi_eh_target_reset()
2587 if (session->tmf_state != TMF_INITIAL) in iscsi_eh_target_reset()
2589 session->tmf_state = TMF_QUEUED; in iscsi_eh_target_reset()
2591 hdr = &session->tmhdr; in iscsi_eh_target_reset()
2594 if (iscsi_exec_task_mgmt_fn(conn, hdr, session->age, in iscsi_eh_target_reset()
2595 session->tgt_reset_timeout)) { in iscsi_eh_target_reset()
2600 switch (session->tmf_state) { in iscsi_eh_target_reset()
2604 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_target_reset()
2608 session->tmf_state = TMF_INITIAL; in iscsi_eh_target_reset()
2613 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_target_reset()
2617 spin_lock_bh(&session->frwd_lock); in iscsi_eh_target_reset()
2620 session->tmf_state = TMF_INITIAL; in iscsi_eh_target_reset()
2621 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_target_reset()
2627 spin_unlock_bh(&session->frwd_lock); in iscsi_eh_target_reset()
2629 ISCSI_DBG_EH(session, "tgt %s reset result = %s\n", session->targetname, in iscsi_eh_target_reset()
2631 mutex_unlock(&session->eh_mutex); in iscsi_eh_target_reset()
2911 struct iscsi_session *session; in iscsi_session_setup() local
2933 session = cls_session->dd_data; in iscsi_session_setup()
2934 session->cls_session = cls_session; in iscsi_session_setup()
2935 session->host = shost; in iscsi_session_setup()
2936 session->state = ISCSI_STATE_FREE; in iscsi_session_setup()
2937 session->fast_abort = 1; in iscsi_session_setup()
2938 session->tgt_reset_timeout = 30; in iscsi_session_setup()
2939 session->lu_reset_timeout = 15; in iscsi_session_setup()
2940 session->abort_timeout = 10; in iscsi_session_setup()
2941 session->scsi_cmds_max = scsi_cmds; in iscsi_session_setup()
2942 session->cmds_max = scsi_cmds + ISCSI_MGMT_CMDS_MAX; in iscsi_session_setup()
2943 session->queued_cmdsn = session->cmdsn = initial_cmdsn; in iscsi_session_setup()
2944 session->exp_cmdsn = initial_cmdsn + 1; in iscsi_session_setup()
2945 session->max_cmdsn = initial_cmdsn + 1; in iscsi_session_setup()
2946 session->max_r2t = 1; in iscsi_session_setup()
2947 session->tt = iscsit; in iscsi_session_setup()
2948 session->dd_data = cls_session->dd_data + sizeof(*session); in iscsi_session_setup()
2950 session->tmf_state = TMF_INITIAL; in iscsi_session_setup()
2951 timer_setup(&session->tmf_timer, iscsi_tmf_timedout, 0); in iscsi_session_setup()
2952 mutex_init(&session->eh_mutex); in iscsi_session_setup()
2953 init_waitqueue_head(&session->ehwait); in iscsi_session_setup()
2955 spin_lock_init(&session->frwd_lock); in iscsi_session_setup()
2956 spin_lock_init(&session->back_lock); in iscsi_session_setup()
2959 if (iscsi_pool_init(&session->cmdpool, session->cmds_max, in iscsi_session_setup()
2960 (void***)&session->cmds, in iscsi_session_setup()
2965 for (cmd_i = 0; cmd_i < session->cmds_max; cmd_i++) { in iscsi_session_setup()
2966 struct iscsi_task *task = session->cmds[cmd_i]; in iscsi_session_setup()
2986 iscsi_pool_free(&session->cmdpool); in iscsi_session_setup()
3001 struct iscsi_session *session = cls_session->dd_data; in iscsi_session_teardown() local
3003 struct Scsi_Host *shost = session->host; in iscsi_session_teardown()
3007 iscsi_pool_free(&session->cmdpool); in iscsi_session_teardown()
3008 kfree(session->password); in iscsi_session_teardown()
3009 kfree(session->password_in); in iscsi_session_teardown()
3010 kfree(session->username); in iscsi_session_teardown()
3011 kfree(session->username_in); in iscsi_session_teardown()
3012 kfree(session->targetname); in iscsi_session_teardown()
3013 kfree(session->targetalias); in iscsi_session_teardown()
3014 kfree(session->initiatorname); in iscsi_session_teardown()
3015 kfree(session->boot_root); in iscsi_session_teardown()
3016 kfree(session->boot_nic); in iscsi_session_teardown()
3017 kfree(session->boot_target); in iscsi_session_teardown()
3018 kfree(session->ifacename); in iscsi_session_teardown()
3019 kfree(session->portal_type); in iscsi_session_teardown()
3020 kfree(session->discovery_parent_type); in iscsi_session_teardown()
3039 struct iscsi_session *session = cls_session->dd_data; in iscsi_conn_setup() local
3052 conn->session = session; in iscsi_conn_setup()
3066 spin_lock_bh(&session->frwd_lock); in iscsi_conn_setup()
3067 if (!kfifo_out(&session->cmdpool.queue, in iscsi_conn_setup()
3070 spin_unlock_bh(&session->frwd_lock); in iscsi_conn_setup()
3073 spin_unlock_bh(&session->frwd_lock); in iscsi_conn_setup()
3084 kfifo_in(&session->cmdpool.queue, (void*)&conn->login_task, in iscsi_conn_setup()
3102 struct iscsi_session *session = conn->session; in iscsi_conn_teardown() local
3108 mutex_lock(&session->eh_mutex); in iscsi_conn_teardown()
3109 spin_lock_bh(&session->frwd_lock); in iscsi_conn_teardown()
3111 if (session->leadconn == conn) { in iscsi_conn_teardown()
3115 session->state = ISCSI_STATE_TERMINATE; in iscsi_conn_teardown()
3116 wake_up(&session->ehwait); in iscsi_conn_teardown()
3118 spin_unlock_bh(&session->frwd_lock); in iscsi_conn_teardown()
3123 spin_lock_bh(&session->frwd_lock); in iscsi_conn_teardown()
3127 spin_lock_bh(&session->back_lock); in iscsi_conn_teardown()
3128 kfifo_in(&session->cmdpool.queue, (void*)&conn->login_task, in iscsi_conn_teardown()
3130 spin_unlock_bh(&session->back_lock); in iscsi_conn_teardown()
3131 if (session->leadconn == conn) in iscsi_conn_teardown()
3132 session->leadconn = NULL; in iscsi_conn_teardown()
3133 spin_unlock_bh(&session->frwd_lock); in iscsi_conn_teardown()
3134 mutex_unlock(&session->eh_mutex); in iscsi_conn_teardown()
3145 struct iscsi_session *session = conn->session; in iscsi_conn_start() local
3147 if (!session) { in iscsi_conn_start()
3153 if ((session->imm_data_en || !session->initial_r2t_en) && in iscsi_conn_start()
3154 session->first_burst > session->max_burst) { in iscsi_conn_start()
3157 session->first_burst, session->max_burst); in iscsi_conn_start()
3173 spin_lock_bh(&session->frwd_lock); in iscsi_conn_start()
3175 session->state = ISCSI_STATE_LOGGED_IN; in iscsi_conn_start()
3176 session->queued_cmdsn = session->cmdsn; in iscsi_conn_start()
3191 session->tmf_state = TMF_INITIAL; in iscsi_conn_start()
3192 session->age++; in iscsi_conn_start()
3193 if (session->age == 16) in iscsi_conn_start()
3194 session->age = 0; in iscsi_conn_start()
3202 spin_unlock_bh(&session->frwd_lock); in iscsi_conn_start()
3204 iscsi_unblock_session(session->cls_session); in iscsi_conn_start()
3205 wake_up(&session->ehwait); in iscsi_conn_start()
3211 fail_mgmt_tasks(struct iscsi_session *session, struct iscsi_conn *conn) in fail_mgmt_tasks() argument
3216 for (i = 0; i < conn->session->cmds_max; i++) { in fail_mgmt_tasks()
3217 task = conn->session->cmds[i]; in fail_mgmt_tasks()
3224 ISCSI_DBG_SESSION(conn->session, in fail_mgmt_tasks()
3228 spin_lock_bh(&session->back_lock); in fail_mgmt_tasks()
3230 spin_unlock_bh(&session->back_lock); in fail_mgmt_tasks()
3238 spin_unlock_bh(&session->back_lock); in fail_mgmt_tasks()
3245 struct iscsi_session *session = conn->session; in iscsi_conn_stop() local
3248 mutex_lock(&session->eh_mutex); in iscsi_conn_stop()
3249 spin_lock_bh(&session->frwd_lock); in iscsi_conn_stop()
3251 spin_unlock_bh(&session->frwd_lock); in iscsi_conn_stop()
3252 mutex_unlock(&session->eh_mutex); in iscsi_conn_stop()
3262 session->state = ISCSI_STATE_TERMINATE; in iscsi_conn_stop()
3264 session->state = ISCSI_STATE_IN_RECOVERY; in iscsi_conn_stop()
3268 spin_unlock_bh(&session->frwd_lock); in iscsi_conn_stop()
3273 spin_lock_bh(&session->frwd_lock); in iscsi_conn_stop()
3275 spin_unlock_bh(&session->frwd_lock); in iscsi_conn_stop()
3286 if (session->state == ISCSI_STATE_IN_RECOVERY && in iscsi_conn_stop()
3288 ISCSI_DBG_SESSION(session, "blocking session\n"); in iscsi_conn_stop()
3289 iscsi_block_session(session->cls_session); in iscsi_conn_stop()
3296 spin_lock_bh(&session->frwd_lock); in iscsi_conn_stop()
3298 fail_mgmt_tasks(session, conn); in iscsi_conn_stop()
3299 memset(&session->tmhdr, 0, sizeof(session->tmhdr)); in iscsi_conn_stop()
3300 spin_unlock_bh(&session->frwd_lock); in iscsi_conn_stop()
3301 mutex_unlock(&session->eh_mutex); in iscsi_conn_stop()
3308 struct iscsi_session *session = cls_session->dd_data; in iscsi_conn_bind() local
3311 spin_lock_bh(&session->frwd_lock); in iscsi_conn_bind()
3313 session->leadconn = conn; in iscsi_conn_bind()
3314 spin_unlock_bh(&session->frwd_lock); in iscsi_conn_bind()
3320 spin_lock_bh(&session->back_lock); in iscsi_conn_bind()
3321 session->max_cmdsn = session->exp_cmdsn = session->cmdsn + 1; in iscsi_conn_bind()
3322 spin_unlock_bh(&session->back_lock); in iscsi_conn_bind()
3355 struct iscsi_session *session = conn->session; in iscsi_set_param() local
3360 sscanf(buf, "%d", &session->fast_abort); in iscsi_set_param()
3363 sscanf(buf, "%d", &session->abort_timeout); in iscsi_set_param()
3366 sscanf(buf, "%d", &session->lu_reset_timeout); in iscsi_set_param()
3369 sscanf(buf, "%d", &session->tgt_reset_timeout); in iscsi_set_param()
3390 sscanf(buf, "%d", &session->initial_r2t_en); in iscsi_set_param()
3393 sscanf(buf, "%hu", &session->max_r2t); in iscsi_set_param()
3396 sscanf(buf, "%d", &session->imm_data_en); in iscsi_set_param()
3399 sscanf(buf, "%d", &session->first_burst); in iscsi_set_param()
3402 sscanf(buf, "%d", &session->max_burst); in iscsi_set_param()
3405 sscanf(buf, "%d", &session->pdu_inorder_en); in iscsi_set_param()
3408 sscanf(buf, "%d", &session->dataseq_inorder_en); in iscsi_set_param()
3411 sscanf(buf, "%d", &session->erl); in iscsi_set_param()
3417 return iscsi_switch_str_param(&session->username, buf); in iscsi_set_param()
3419 return iscsi_switch_str_param(&session->username_in, buf); in iscsi_set_param()
3421 return iscsi_switch_str_param(&session->password, buf); in iscsi_set_param()
3423 return iscsi_switch_str_param(&session->password_in, buf); in iscsi_set_param()
3425 return iscsi_switch_str_param(&session->targetname, buf); in iscsi_set_param()
3427 return iscsi_switch_str_param(&session->targetalias, buf); in iscsi_set_param()
3429 sscanf(buf, "%d", &session->tpgt); in iscsi_set_param()
3437 return iscsi_switch_str_param(&session->ifacename, buf); in iscsi_set_param()
3439 return iscsi_switch_str_param(&session->initiatorname, buf); in iscsi_set_param()
3441 return iscsi_switch_str_param(&session->boot_root, buf); in iscsi_set_param()
3443 return iscsi_switch_str_param(&session->boot_nic, buf); in iscsi_set_param()
3445 return iscsi_switch_str_param(&session->boot_target, buf); in iscsi_set_param()
3447 return iscsi_switch_str_param(&session->portal_type, buf); in iscsi_set_param()
3449 return iscsi_switch_str_param(&session->discovery_parent_type, in iscsi_set_param()
3453 session->discovery_sess = !!val; in iscsi_set_param()
3468 struct iscsi_session *session = cls_session->dd_data; in iscsi_session_get_param() local
3473 len = sysfs_emit(buf, "%d\n", session->fast_abort); in iscsi_session_get_param()
3476 len = sysfs_emit(buf, "%d\n", session->abort_timeout); in iscsi_session_get_param()
3479 len = sysfs_emit(buf, "%d\n", session->lu_reset_timeout); in iscsi_session_get_param()
3482 len = sysfs_emit(buf, "%d\n", session->tgt_reset_timeout); in iscsi_session_get_param()
3485 len = sysfs_emit(buf, "%d\n", session->initial_r2t_en); in iscsi_session_get_param()
3488 len = sysfs_emit(buf, "%hu\n", session->max_r2t); in iscsi_session_get_param()
3491 len = sysfs_emit(buf, "%d\n", session->imm_data_en); in iscsi_session_get_param()
3494 len = sysfs_emit(buf, "%u\n", session->first_burst); in iscsi_session_get_param()
3497 len = sysfs_emit(buf, "%u\n", session->max_burst); in iscsi_session_get_param()
3500 len = sysfs_emit(buf, "%d\n", session->pdu_inorder_en); in iscsi_session_get_param()
3503 len = sysfs_emit(buf, "%d\n", session->dataseq_inorder_en); in iscsi_session_get_param()
3506 len = sysfs_emit(buf, "%d\n", session->def_taskmgmt_tmo); in iscsi_session_get_param()
3509 len = sysfs_emit(buf, "%d\n", session->erl); in iscsi_session_get_param()
3512 len = sysfs_emit(buf, "%s\n", session->targetname); in iscsi_session_get_param()
3515 len = sysfs_emit(buf, "%s\n", session->targetalias); in iscsi_session_get_param()
3518 len = sysfs_emit(buf, "%d\n", session->tpgt); in iscsi_session_get_param()
3521 len = sysfs_emit(buf, "%s\n", session->username); in iscsi_session_get_param()
3524 len = sysfs_emit(buf, "%s\n", session->username_in); in iscsi_session_get_param()
3527 len = sysfs_emit(buf, "%s\n", session->password); in iscsi_session_get_param()
3530 len = sysfs_emit(buf, "%s\n", session->password_in); in iscsi_session_get_param()
3533 len = sysfs_emit(buf, "%s\n", session->ifacename); in iscsi_session_get_param()
3536 len = sysfs_emit(buf, "%s\n", session->initiatorname); in iscsi_session_get_param()
3539 len = sysfs_emit(buf, "%s\n", session->boot_root); in iscsi_session_get_param()
3542 len = sysfs_emit(buf, "%s\n", session->boot_nic); in iscsi_session_get_param()
3545 len = sysfs_emit(buf, "%s\n", session->boot_target); in iscsi_session_get_param()
3548 len = sysfs_emit(buf, "%u\n", session->auto_snd_tgt_disable); in iscsi_session_get_param()
3551 len = sysfs_emit(buf, "%u\n", session->discovery_sess); in iscsi_session_get_param()
3554 len = sysfs_emit(buf, "%s\n", session->portal_type); in iscsi_session_get_param()
3557 len = sysfs_emit(buf, "%u\n", session->chap_auth_en); in iscsi_session_get_param()
3560 len = sysfs_emit(buf, "%u\n", session->discovery_logout_en); in iscsi_session_get_param()
3563 len = sysfs_emit(buf, "%u\n", session->bidi_chap_en); in iscsi_session_get_param()
3566 len = sysfs_emit(buf, "%u\n", session->discovery_auth_optional); in iscsi_session_get_param()
3569 len = sysfs_emit(buf, "%d\n", session->time2wait); in iscsi_session_get_param()
3572 len = sysfs_emit(buf, "%d\n", session->time2retain); in iscsi_session_get_param()
3575 len = sysfs_emit(buf, "%u\n", session->tsid); in iscsi_session_get_param()
3579 session->isid[0], session->isid[1], in iscsi_session_get_param()
3580 session->isid[2], session->isid[3], in iscsi_session_get_param()
3581 session->isid[4], session->isid[5]); in iscsi_session_get_param()
3584 len = sysfs_emit(buf, "%u\n", session->discovery_parent_idx); in iscsi_session_get_param()
3587 if (session->discovery_parent_type) in iscsi_session_get_param()
3589 session->discovery_parent_type); in iscsi_session_get_param()