.. | .. |
---|
721 | 721 | iscsi_set_param(cls_conn, param, buf, buflen); |
---|
722 | 722 | break; |
---|
723 | 723 | case ISCSI_PARAM_DATADGST_EN: |
---|
724 | | - iscsi_set_param(cls_conn, param, buf, buflen); |
---|
725 | | - |
---|
726 | 724 | mutex_lock(&tcp_sw_conn->sock_lock); |
---|
727 | 725 | if (!tcp_sw_conn->sock) { |
---|
728 | 726 | mutex_unlock(&tcp_sw_conn->sock_lock); |
---|
729 | 727 | return -ENOTCONN; |
---|
730 | 728 | } |
---|
| 729 | + iscsi_set_param(cls_conn, param, buf, buflen); |
---|
731 | 730 | tcp_sw_conn->sendpage = conn->datadgst_en ? |
---|
732 | 731 | sock_no_sendpage : tcp_sw_conn->sock->ops->sendpage; |
---|
733 | 732 | mutex_unlock(&tcp_sw_conn->sock_lock); |
---|
.. | .. |
---|
802 | 801 | enum iscsi_host_param param, char *buf) |
---|
803 | 802 | { |
---|
804 | 803 | struct iscsi_sw_tcp_host *tcp_sw_host = iscsi_host_priv(shost); |
---|
805 | | - struct iscsi_session *session = tcp_sw_host->session; |
---|
| 804 | + struct iscsi_session *session; |
---|
806 | 805 | struct iscsi_conn *conn; |
---|
807 | 806 | struct iscsi_tcp_conn *tcp_conn; |
---|
808 | 807 | struct iscsi_sw_tcp_conn *tcp_sw_conn; |
---|
.. | .. |
---|
812 | 811 | |
---|
813 | 812 | switch (param) { |
---|
814 | 813 | case ISCSI_HOST_PARAM_IPADDRESS: |
---|
| 814 | + session = tcp_sw_host->session; |
---|
815 | 815 | if (!session) |
---|
816 | 816 | return -ENOTCONN; |
---|
817 | 817 | |
---|
.. | .. |
---|
906 | 906 | if (!cls_session) |
---|
907 | 907 | goto remove_host; |
---|
908 | 908 | session = cls_session->dd_data; |
---|
909 | | - tcp_sw_host = iscsi_host_priv(shost); |
---|
910 | | - tcp_sw_host->session = session; |
---|
911 | 909 | |
---|
912 | 910 | shost->can_queue = session->scsi_cmds_max; |
---|
913 | 911 | if (iscsi_tcp_r2tpool_alloc(session)) |
---|
914 | 912 | goto remove_session; |
---|
| 913 | + |
---|
| 914 | + /* We are now fully setup so expose the session to sysfs. */ |
---|
| 915 | + tcp_sw_host = iscsi_host_priv(shost); |
---|
| 916 | + tcp_sw_host->session = session; |
---|
915 | 917 | return cls_session; |
---|
916 | 918 | |
---|
917 | 919 | remove_session: |
---|