isert_np
isert_setup_id(struct isert_np *isert_np)
struct iscsi_np *np = isert_np->np;
id = rdma_create_id(&init_net, isert_cma_handler, isert_np,
struct isert_np *isert_np;
isert_np = kzalloc_obj(struct isert_np);
if (!isert_np)
sema_init(&isert_np->sem, 0);
mutex_init(&isert_np->mutex);
INIT_LIST_HEAD(&isert_np->accepted);
INIT_LIST_HEAD(&isert_np->pending);
isert_np->np = np;
isert_lid = isert_setup_id(isert_np);
isert_np->cm_id = isert_lid;
np->np_context = isert_np;
kfree(isert_np);
struct isert_np *isert_np = np->np_context;
ret = down_interruptible(&isert_np->sem);
mutex_lock(&isert_np->mutex);
if (list_empty(&isert_np->pending)) {
mutex_unlock(&isert_np->mutex);
isert_conn = list_first_entry(&isert_np->pending,
mutex_unlock(&isert_np->mutex);
struct isert_np *isert_np = np->np_context;
if (isert_np->cm_id)
rdma_destroy_id(isert_np->cm_id);
mutex_lock(&isert_np->mutex);
if (!list_empty(&isert_np->pending)) {
&isert_np->pending,
if (!list_empty(&isert_np->accepted)) {
&isert_np->accepted,
mutex_unlock(&isert_np->mutex);
kfree(isert_np);
struct isert_np *isert_np = cma_id->context;
struct iscsi_np *np = isert_np->np;
mutex_lock(&isert_np->mutex);
list_add_tail(&isert_conn->node, &isert_np->accepted);
mutex_unlock(&isert_np->mutex);
struct isert_np *isert_np = cma_id->context;
mutex_lock(&isert_np->mutex);
list_move_tail(&isert_conn->node, &isert_np->pending);
mutex_unlock(&isert_np->mutex);
isert_info("np %p: Allow accept_np to continue\n", isert_np);
up(&isert_np->sem);
struct rdma_cm_id *isert_setup_id(struct isert_np *isert_np);
struct isert_np *isert_np = isert_conn->cm_id->context;
mutex_lock(&isert_np->mutex);
mutex_unlock(&isert_np->mutex);
isert_np_cma_handler(struct isert_np *isert_np,
rdma_event_msg(event), event, isert_np);
isert_np->cm_id = NULL;
isert_np->cm_id = isert_setup_id(isert_np);
if (IS_ERR(isert_np->cm_id)) {
isert_np, PTR_ERR(isert_np->cm_id));
isert_np->cm_id = NULL;
isert_np, event);
struct isert_np *isert_np = cma_id->context;
mutex_lock(&isert_np->mutex);
mutex_unlock(&isert_np->mutex);
struct isert_np *isert_np = cma_id->context;
if (isert_np->cm_id == cma_id)