Add a new netlink command that can remove a dead node from the internal
data structures.
There is still an impediment here:
When I wrote this a node was removed properly on the first call. After rebase
it now requires the netlink command and the subsequent tipc_node_stop() function
to be executed twice before the node is actually removed. To me this suggests
that something is wrong with the node ref-count. I bisected and found the change
in behaviour to be introduced in 5405ff6e15f4 tipc: convert node lock to rwlock
Looking at that commit the only change in ref-counting that I can spot is new
return at line 463 of the patch:
if (likely(!skb_queue_empty(&xmitq)))
...
return ...
Taking this return would result in one less tipc_node_put(). I'm not familiar
with how the node ref counting is suppose to work. Can someone help me here?
Why are we changing the ref count of a node in the transmit function?
Richard Alpe (2):
tipc: move netlink policies to netlink.h
tipc: add node removal functionality
include/uapi/linux/tipc_netlink.h | 1 +
net/tipc/bearer.c | 19 +--------
net/tipc/link.c | 8 ----
net/tipc/name_table.c | 7 +---
net/tipc/net.c | 8 +---
net/tipc/netlink.c | 18 +++------
net/tipc/netlink.h | 85 +++++++++++++++++++++++++++++++++++++++
net/tipc/node.c | 83 +++++++++++++++++++++++++-------------
net/tipc/node.h | 3 +-
net/tipc/socket.c | 9 +----
net/tipc/udp_media.c | 9 +----
11 files changed, 155 insertions(+), 95 deletions(-)
--
2.1.4
------------------------------------------------------------------------------
Go from Idea to Many App Stores Faster with Intel(R) XDK
Give your users amazing mobile app experiences with Intel(R) XDK.
Use one codebase in this all-in-one HTML5 development environment.
Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs.
http://pubads.g.doubleclick.net/gampad/clk?id=254741911&iu=/4140
_______________________________________________
tipc-discussion mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tipc-discussion