> -----Original Message----- > From: Richard Alpe > Sent: Wednesday, 02 December, 2015 07:52 > To: [email protected] > Cc: Jon Maloy; Ying Xue; Richard Alpe > Subject: [PATCH 0/2] New node removal netlink command > > 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 ... >
Yes, this is clearly a bug. I will post a patch. Thank you for spotting this. ///jon > 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
