Lines Matching refs:nsw

305 static int o2net_prep_nsw(struct o2net_node *nn, struct o2net_status_wait *nsw)  in o2net_prep_nsw()  argument
310 ret = idr_alloc(&nn->nn_status_idr, nsw, 0, 0, GFP_ATOMIC); in o2net_prep_nsw()
312 nsw->ns_id = ret; in o2net_prep_nsw()
313 list_add_tail(&nsw->ns_node_item, &nn->nn_status_list); in o2net_prep_nsw()
319 init_waitqueue_head(&nsw->ns_wq); in o2net_prep_nsw()
320 nsw->ns_sys_status = O2NET_ERR_NONE; in o2net_prep_nsw()
321 nsw->ns_status = 0; in o2net_prep_nsw()
326 struct o2net_status_wait *nsw, in o2net_complete_nsw_locked() argument
332 if (!list_empty(&nsw->ns_node_item)) { in o2net_complete_nsw_locked()
333 list_del_init(&nsw->ns_node_item); in o2net_complete_nsw_locked()
334 nsw->ns_sys_status = sys_status; in o2net_complete_nsw_locked()
335 nsw->ns_status = status; in o2net_complete_nsw_locked()
336 idr_remove(&nn->nn_status_idr, nsw->ns_id); in o2net_complete_nsw_locked()
337 wake_up(&nsw->ns_wq); in o2net_complete_nsw_locked()
342 struct o2net_status_wait *nsw, in o2net_complete_nsw() argument
347 if (nsw == NULL) { in o2net_complete_nsw()
351 nsw = idr_find(&nn->nn_status_idr, id); in o2net_complete_nsw()
352 if (nsw == NULL) in o2net_complete_nsw()
356 o2net_complete_nsw_locked(nn, nsw, sys_status, status); in o2net_complete_nsw()
365 struct o2net_status_wait *nsw, *tmp; in o2net_complete_nodes_nsw() local
370 list_for_each_entry_safe(nsw, tmp, &nn->nn_status_list, ns_node_item) { in o2net_complete_nodes_nsw()
371 o2net_complete_nsw_locked(nn, nsw, O2NET_ERR_DIED, 0); in o2net_complete_nodes_nsw()
380 struct o2net_status_wait *nsw) in o2net_nsw_completed() argument
384 completed = list_empty(&nsw->ns_node_item); in o2net_nsw_completed()
1038 struct o2net_status_wait nsw = { in o2net_send_message_vec() local
1039 .ns_node_item = LIST_HEAD_INIT(nsw.ns_node_item), in o2net_send_message_vec()
1100 ret = o2net_prep_nsw(nn, &nsw); in o2net_send_message_vec()
1104 msg->msg_num = cpu_to_be32(nsw.ns_id); in o2net_send_message_vec()
1105 o2net_set_nst_msg_id(&nst, nsw.ns_id); in o2net_send_message_vec()
1123 wait_event(nsw.ns_wq, o2net_nsw_completed(nn, &nsw)); in o2net_send_message_vec()
1130 ret = o2net_sys_err_to_errno(nsw.ns_sys_status); in o2net_send_message_vec()
1132 *status = nsw.ns_status; in o2net_send_message_vec()
1135 ret, nsw.ns_status); in o2net_send_message_vec()
1142 o2net_complete_nsw(nn, &nsw, 0, 0, 0); in o2net_send_message_vec()