|
@@ -1084,7 +1084,8 @@ iscsi_tcp_conn_setup(struct iscsi_cls_session *cls_session, int dd_data_size,
|
|
|
struct iscsi_cls_conn *cls_conn;
|
|
|
struct iscsi_tcp_conn *tcp_conn;
|
|
|
|
|
|
- cls_conn = iscsi_conn_setup(cls_session, sizeof(*tcp_conn), conn_idx);
|
|
|
+ cls_conn = iscsi_conn_setup(cls_session,
|
|
|
+ sizeof(*tcp_conn) + dd_data_size, conn_idx);
|
|
|
if (!cls_conn)
|
|
|
return NULL;
|
|
|
conn = cls_conn->dd_data;
|
|
@@ -1096,22 +1097,13 @@ iscsi_tcp_conn_setup(struct iscsi_cls_session *cls_session, int dd_data_size,
|
|
|
|
|
|
tcp_conn = conn->dd_data;
|
|
|
tcp_conn->iscsi_conn = conn;
|
|
|
-
|
|
|
- tcp_conn->dd_data = kzalloc(dd_data_size, GFP_KERNEL);
|
|
|
- if (!tcp_conn->dd_data) {
|
|
|
- iscsi_conn_teardown(cls_conn);
|
|
|
- return NULL;
|
|
|
- }
|
|
|
+ tcp_conn->dd_data = conn->dd_data + sizeof(*tcp_conn);
|
|
|
return cls_conn;
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(iscsi_tcp_conn_setup);
|
|
|
|
|
|
void iscsi_tcp_conn_teardown(struct iscsi_cls_conn *cls_conn)
|
|
|
{
|
|
|
- struct iscsi_conn *conn = cls_conn->dd_data;
|
|
|
- struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
|
|
|
-
|
|
|
- kfree(tcp_conn->dd_data);
|
|
|
iscsi_conn_teardown(cls_conn);
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(iscsi_tcp_conn_teardown);
|