Lines Matching refs:nsw
191 static int o2net_prep_nsw(struct o2net_node *nn, struct o2net_status_wait *nsw)
201 ret = idr_get_new(&nn->nn_status_idr, nsw, &nsw->ns_id);
203 list_add_tail(&nsw->ns_node_item,
209 init_waitqueue_head(&nsw->ns_wq);
210 nsw->ns_sys_status = O2NET_ERR_NONE;
211 nsw->ns_status = 0;
218 struct o2net_status_wait *nsw,
224 if (!list_empty(&nsw->ns_node_item)) {
225 list_del_init(&nsw->ns_node_item);
226 nsw->ns_sys_status = sys_status;
227 nsw->ns_status = status;
228 idr_remove(&nn->nn_status_idr, nsw->ns_id);
229 wake_up(&nsw->ns_wq);
234 struct o2net_status_wait *nsw,
239 if (nsw == NULL) {
243 nsw = idr_find(&nn->nn_status_idr, id);
244 if (nsw == NULL)
248 o2net_complete_nsw_locked(nn, nsw, sys_status, status);
259 struct o2net_status_wait *nsw;
264 nsw = list_entry(iter, struct o2net_status_wait, ns_node_item);
265 o2net_complete_nsw_locked(nn, nsw, O2NET_ERR_DIED, 0);
274 struct o2net_status_wait *nsw)
278 completed = list_empty(&nsw->ns_node_item);
912 struct o2net_status_wait nsw = {
913 .ns_node_item = LIST_HEAD_INIT(nsw.ns_node_item),
968 ret = o2net_prep_nsw(nn, &nsw);
972 msg->msg_num = cpu_to_be32(nsw.ns_id);
987 wait_event(nsw.ns_wq, o2net_nsw_completed(nn, &nsw));
992 ret = o2net_sys_err_to_errno(nsw.ns_sys_status);
994 *status = nsw.ns_status;
997 ret, nsw.ns_status);
1005 o2net_complete_nsw(nn, &nsw, 0, 0, 0);