• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/fs/ocfs2/cluster/

Lines Matching refs:nn

244 static u8 o2net_num_from_nn(struct o2net_node *nn)
246 BUG_ON(nn == NULL);
247 return nn - o2net_nodes;
252 static int o2net_prep_nsw(struct o2net_node *nn, struct o2net_status_wait *nsw)
257 if (!idr_pre_get(&nn->nn_status_idr, GFP_ATOMIC)) {
261 spin_lock(&nn->nn_lock);
262 ret = idr_get_new(&nn->nn_status_idr, nsw, &nsw->ns_id);
265 &nn->nn_status_list);
266 spin_unlock(&nn->nn_lock);
278 static void o2net_complete_nsw_locked(struct o2net_node *nn,
283 assert_spin_locked(&nn->nn_lock);
289 idr_remove(&nn->nn_status_idr, nsw->ns_id);
294 static void o2net_complete_nsw(struct o2net_node *nn,
299 spin_lock(&nn->nn_lock);
304 nsw = idr_find(&nn->nn_status_idr, id);
309 o2net_complete_nsw_locked(nn, nsw, sys_status, status);
312 spin_unlock(&nn->nn_lock);
316 static void o2net_complete_nodes_nsw(struct o2net_node *nn)
321 assert_spin_locked(&nn->nn_lock);
323 list_for_each_entry_safe(nsw, tmp, &nn->nn_status_list, ns_node_item) {
324 o2net_complete_nsw_locked(nn, nsw, O2NET_ERR_DIED, 0);
329 o2net_num_from_nn(nn));
332 static int o2net_nsw_completed(struct o2net_node *nn,
336 spin_lock(&nn->nn_lock);
338 spin_unlock(&nn->nn_lock);
444 static void o2net_set_nn_state(struct o2net_node *nn,
448 int was_valid = nn->nn_sc_valid;
449 int was_err = nn->nn_persistent_error;
450 struct o2net_sock_container *old_sc = nn->nn_sc;
452 assert_spin_locked(&nn->nn_lock);
461 BUG_ON(sc && nn->nn_sc && nn->nn_sc != sc);
469 o2net_num_from_nn(nn), nn->nn_sc, sc, nn->nn_sc_valid, valid,
470 nn->nn_persistent_error, err);
472 nn->nn_sc = sc;
473 nn->nn_sc_valid = valid ? 1 : 0;
474 nn->nn_persistent_error = err;
477 if (nn->nn_persistent_error || nn->nn_sc_valid)
478 wake_up(&nn->nn_sc_wq);
480 if (!was_err && nn->nn_persistent_error) {
481 o2quo_conn_err(o2net_num_from_nn(nn));
482 queue_delayed_work(o2net_wq, &nn->nn_still_up,
489 o2net_complete_nodes_nsw(nn);
493 o2quo_conn_up(o2net_num_from_nn(nn));
494 cancel_delayed_work(&nn->nn_connect_expired);
509 delay = (nn->nn_last_connect_attempt +
515 queue_delayed_work(o2net_wq, &nn->nn_connect_work, delay);
527 queue_delayed_work(o2net_wq, &nn->nn_connect_expired, delay);
530 /* keep track of the nn's sc ref for the caller */
645 * with an sc and want to detach it from the nn if someone already hasn't beat
649 static void o2net_ensure_shutdown(struct o2net_node *nn,
653 spin_lock(&nn->nn_lock);
654 if (nn->nn_sc == sc)
655 o2net_set_nn_state(nn, NULL, 0, err);
656 spin_unlock(&nn->nn_lock);
662 * sc detached from the nn. state_change will also trigger this callback
672 struct o2net_node *nn = o2net_nn_from_num(sc->sc_node->nd_num);
688 o2net_ensure_shutdown(nn, sc, 0);
917 struct o2net_node *nn = o2net_nn_from_num(sc->sc_node->nd_num);
937 o2net_ensure_shutdown(nn, sc, 0);
953 static int o2net_tx_can_proceed(struct o2net_node *nn,
959 spin_lock(&nn->nn_lock);
960 if (nn->nn_persistent_error) {
963 *error = nn->nn_persistent_error;
964 } else if (nn->nn_sc_valid) {
965 kref_get(&nn->nn_sc->sc_kref);
968 *sc_ret = nn->nn_sc;
971 spin_unlock(&nn->nn_lock);
984 struct o2net_node *nn = o2net_nn_from_num(target_node);
1020 wait_event(nn->nn_sc_wq, o2net_tx_can_proceed(nn, &sc, &ret));
1047 ret = o2net_prep_nsw(nn, &nsw);
1070 wait_event(nsw.ns_wq, o2net_nsw_completed(nn, &nsw));
1089 o2net_complete_nsw(nn, &nsw, 0, 0, 0);
1133 struct o2net_node *nn = o2net_nn_from_num(sc->sc_node->nd_num);
1146 o2net_complete_nsw(nn, NULL,
1219 struct o2net_node *nn = o2net_nn_from_num(sc->sc_node->nd_num);
1229 o2net_ensure_shutdown(nn, sc, -ENOTCONN);
1245 o2net_ensure_shutdown(nn, sc, -ENOTCONN);
1256 o2net_ensure_shutdown(nn, sc, -ENOTCONN);
1267 o2net_ensure_shutdown(nn, sc, -ENOTCONN);
1273 spin_lock(&nn->nn_lock);
1276 if (nn->nn_sc == sc) {
1278 atomic_set(&nn->nn_timeout, 0);
1279 o2net_set_nn_state(nn, sc, 1, 0);
1281 spin_unlock(&nn->nn_lock);
1395 struct o2net_node *nn = o2net_nn_from_num(sc->sc_node->nd_num);
1398 o2net_ensure_shutdown(nn, sc, 0);
1476 struct o2net_node *nn = o2net_nn_from_num(sc->sc_node->nd_num);
1503 atomic_set(&nn->nn_timeout, 1);
1525 /* this work func is kicked whenever a path sets the nn state which doesn't
1532 struct o2net_node *nn =
1542 if (o2nm_this_node() <= o2net_num_from_nn(nn))
1546 node = o2nm_get_node_by_num(o2net_num_from_nn(nn));
1558 spin_lock(&nn->nn_lock);
1566 timeout = atomic_read(&nn->nn_timeout);
1567 stop = (nn->nn_sc ||
1568 (nn->nn_persistent_error &&
1569 (nn->nn_persistent_error != -ENOTCONN || timeout == 0)));
1570 spin_unlock(&nn->nn_lock);
1574 nn->nn_last_connect_attempt = jiffies;
1612 spin_lock(&nn->nn_lock);
1613 /* handshake completion will set nn->nn_sc_valid */
1614 o2net_set_nn_state(nn, sc, 0, 0);
1615 spin_unlock(&nn->nn_lock);
1635 o2net_ensure_shutdown(nn, sc, 0);
1649 struct o2net_node *nn =
1652 spin_lock(&nn->nn_lock);
1653 if (!nn->nn_sc_valid) {
1656 o2net_num_from_nn(nn),
1660 o2net_set_nn_state(nn, NULL, 0, -ENOTCONN);
1662 spin_unlock(&nn->nn_lock);
1667 struct o2net_node *nn =
1670 o2quo_hb_still_up(o2net_num_from_nn(nn));
1677 struct o2net_node *nn = o2net_nn_from_num(node->nd_num);
1680 spin_lock(&nn->nn_lock);
1681 atomic_set(&nn->nn_timeout, 0);
1682 o2net_set_nn_state(nn, NULL, 0, -ENOTCONN);
1683 spin_unlock(&nn->nn_lock);
1686 cancel_delayed_work(&nn->nn_connect_expired);
1687 cancel_delayed_work(&nn->nn_connect_work);
1688 cancel_delayed_work(&nn->nn_still_up);
1707 struct o2net_node *nn = o2net_nn_from_num(node_num);
1712 nn->nn_last_connect_attempt = jiffies -
1720 spin_lock(&nn->nn_lock);
1721 atomic_set(&nn->nn_timeout, 0);
1722 if (nn->nn_persistent_error)
1723 o2net_set_nn_state(nn, NULL, 0, 0);
1724 spin_unlock(&nn->nn_lock);
1763 struct o2net_node *nn;
1823 nn = o2net_nn_from_num(node->nd_num);
1825 spin_lock(&nn->nn_lock);
1826 if (nn->nn_sc)
1830 spin_unlock(&nn->nn_lock);
1848 spin_lock(&nn->nn_lock);
1849 atomic_set(&nn->nn_timeout, 0);
1850 o2net_set_nn_state(nn, sc, 0, 0);
1851 spin_unlock(&nn->nn_lock);
2047 struct o2net_node *nn = o2net_nn_from_num(i);
2049 atomic_set(&nn->nn_timeout, 0);
2050 spin_lock_init(&nn->nn_lock);
2051 INIT_DELAYED_WORK(&nn->nn_connect_work, o2net_start_connect);
2052 INIT_DELAYED_WORK(&nn->nn_connect_expired,
2054 INIT_DELAYED_WORK(&nn->nn_still_up, o2net_still_up);
2056 nn->nn_persistent_error = -ENOTCONN;
2057 init_waitqueue_head(&nn->nn_sc_wq);
2058 idr_init(&nn->nn_status_idr);
2059 INIT_LIST_HEAD(&nn->nn_status_list);