Merge branch 'svn-trunk'

This commit is contained in:
Bart Van Assche
2021-07-08 20:30:42 -07:00

View File

@@ -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;