| .. | .. |
|---|
| 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: |
|---|