Merge branch 'tipc-Mar13-2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg...
[pandora-kernel.git] / net / tipc / node_subscr.c
index 018a553..c3c2815 100644 (file)
@@ -2,7 +2,7 @@
  * net/tipc/node_subscr.c: TIPC "node down" subscription handling
  *
  * Copyright (c) 1995-2006, Ericsson AB
- * Copyright (c) 2005, Wind River Systems
+ * Copyright (c) 2005, 2010-2011, Wind River Systems
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -76,3 +76,22 @@ void tipc_nodesub_unsubscribe(struct tipc_node_subscr *node_sub)
        list_del_init(&node_sub->nodesub_list);
        tipc_node_unlock(node_sub->node);
 }
+
+/**
+ * tipc_nodesub_notify - notify subscribers that a node is unreachable
+ *
+ * Note: node is locked by caller
+ */
+
+void tipc_nodesub_notify(struct tipc_node *node)
+{
+       struct tipc_node_subscr *ns;
+
+       list_for_each_entry(ns, &node->nsub, nodesub_list) {
+               if (ns->handle_node_down) {
+                       tipc_k_signal((Handler)ns->handle_node_down,
+                                     (unsigned long)ns->usr_handle);
+                       ns->handle_node_down = NULL;
+               }
+       }
+}