mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-19 03:31:26 +00:00
Merge branch 'svn-trunk'
This commit is contained in:
@@ -1525,36 +1525,8 @@ static int isert_cm_conn_req_handler(struct rdma_cm_id *cm_id,
|
||||
goto fail_accept;
|
||||
}
|
||||
|
||||
switch (isert_conn->peer_addr.ss_family) {
|
||||
case AF_INET:
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
|
||||
PRINT_INFO("iser accepted connection cm_id:%p "
|
||||
NIPQUAD_FMT "->" NIPQUAD_FMT, cm_id,
|
||||
NIPQUAD(((struct sockaddr_in *)&isert_conn->peer_addr)->sin_addr.s_addr),
|
||||
NIPQUAD(((struct sockaddr_in *)&isert_conn->self_addr)->sin_addr.s_addr));
|
||||
#else
|
||||
PRINT_INFO("iser accepted connection cm_id:%p %pI4->%pI4",
|
||||
cm_id,
|
||||
&((struct sockaddr_in *)&isert_conn->peer_addr)->sin_addr.s_addr,
|
||||
&((struct sockaddr_in *)&isert_conn->self_addr)->sin_addr.s_addr);
|
||||
#endif
|
||||
break;
|
||||
case AF_INET6:
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
|
||||
PRINT_INFO("iser accepted connection cm_id:%p "
|
||||
NIP6_FMT "->" NIP6_FMT, cm_id,
|
||||
NIP6(((struct sockaddr_in6 *)&isert_conn->peer_addr)->sin6_addr),
|
||||
NIP6(((struct sockaddr_in6 *)&isert_conn->self_addr)->sin6_addr));
|
||||
#else
|
||||
PRINT_INFO("iser accepted connection cm_id:%p %pI6->%pI6",
|
||||
cm_id,
|
||||
&((struct sockaddr_in6 *)&isert_conn->peer_addr)->sin6_addr,
|
||||
&((struct sockaddr_in6 *)&isert_conn->self_addr)->sin6_addr);
|
||||
#endif
|
||||
break;
|
||||
default:
|
||||
PRINT_INFO("iser accepted connection cm_id:%p", cm_id);
|
||||
}
|
||||
PRINT_INFO("iser accepted connection cm_id:%p %pISpc->%pISpc",
|
||||
cm_id, &isert_conn->peer_addr, &isert_conn->self_addr);
|
||||
|
||||
mutex_lock(&dev_list_mutex);
|
||||
list_add_tail(&isert_conn->portal_node, &portal->conn_list);
|
||||
@@ -1625,16 +1597,6 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int isert_cm_disconnect_handler(struct rdma_cm_id *cm_id,
|
||||
struct rdma_cm_event *event)
|
||||
{
|
||||
struct isert_connection *isert_conn = cm_id->qp->qp_context;
|
||||
|
||||
isert_conn_disconnect(isert_conn);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const char *cm_event_type_str(enum rdma_cm_event_type ev_type)
|
||||
{
|
||||
switch (ev_type) {
|
||||
@@ -1682,28 +1644,33 @@ static int isert_handle_failure(struct isert_connection *conn)
|
||||
}
|
||||
|
||||
static int isert_cm_evt_listener_handler(struct rdma_cm_id *cm_id,
|
||||
struct rdma_cm_event *cm_ev)
|
||||
enum rdma_cm_event_type event)
|
||||
{
|
||||
enum rdma_cm_event_type ev_type;
|
||||
struct isert_portal *portal;
|
||||
int err = 0;
|
||||
|
||||
ev_type = cm_ev->event;
|
||||
portal = cm_id->context;
|
||||
|
||||
switch (ev_type) {
|
||||
switch (event) {
|
||||
case RDMA_CM_EVENT_DEVICE_REMOVAL:
|
||||
portal->cm_id = NULL;
|
||||
err = -EINVAL;
|
||||
break;
|
||||
|
||||
default:
|
||||
PRINT_INFO("Listener event:%s(%d), ignored",
|
||||
cm_event_type_str(ev_type), ev_type);
|
||||
cm_event_type_str(event), event);
|
||||
break;
|
||||
}
|
||||
|
||||
return err;
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int isert_cm_disconnect_handler(struct rdma_cm_id *cm_id,
|
||||
enum rdma_cm_event_type event)
|
||||
{
|
||||
struct isert_connection *isert_conn = cm_id->qp->qp_context;
|
||||
|
||||
isert_conn_disconnect(isert_conn);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int isert_cm_evt_handler(struct rdma_cm_id *cm_id,
|
||||
@@ -1722,7 +1689,7 @@ static int isert_cm_evt_handler(struct rdma_cm_id *cm_id,
|
||||
portal, cm_id);
|
||||
|
||||
if (portal->cm_id == cm_id) {
|
||||
err = isert_cm_evt_listener_handler(cm_id, cm_ev);
|
||||
err = isert_cm_evt_listener_handler(cm_id, ev_type);
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -1739,14 +1706,14 @@ static int isert_cm_evt_handler(struct rdma_cm_id *cm_id,
|
||||
|
||||
case RDMA_CM_EVENT_CONNECT_ERROR:
|
||||
case RDMA_CM_EVENT_REJECTED:
|
||||
err = isert_cm_disconnect_handler(cm_id, cm_ev);
|
||||
err = isert_cm_disconnect_handler(cm_id, ev_type);
|
||||
break;
|
||||
|
||||
case RDMA_CM_EVENT_ADDR_CHANGE:
|
||||
case RDMA_CM_EVENT_DISCONNECTED:
|
||||
case RDMA_CM_EVENT_DEVICE_REMOVAL:
|
||||
case RDMA_CM_EVENT_TIMEWAIT_EXIT:
|
||||
isert_cm_disconnect_handler(cm_id, cm_ev);
|
||||
isert_cm_disconnect_handler(cm_id, ev_type);
|
||||
err = isert_cm_disconnected_handler(cm_id, cm_ev);
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user