summaryrefslogtreecommitdiff
path: root/net/tipc/link.c
diff options
context:
space:
mode:
authorErik Hugne <erik.hugne@ericsson.com>2013-11-06 09:28:05 +0100
committerDavid S. Miller <davem@davemloft.net>2013-11-07 18:30:11 -0500
commit528f6f4bf372511ebf6004eed822de8f749b5930 (patch)
tree3db1786d51ec6f55d468f1a0e9028b61119ee4ba /net/tipc/link.c
parentb0db7b0c21a014d01be1018db68e78ebf7d4f0d7 (diff)
downloadlinux-stable-528f6f4bf372511ebf6004eed822de8f749b5930.tar.gz
linux-stable-528f6f4bf372511ebf6004eed822de8f749b5930.tar.bz2
linux-stable-528f6f4bf372511ebf6004eed822de8f749b5930.zip
tipc: don't reroute message fragments
When a message fragment is received in a broadcast or unicast link, the reception code will append the fragment payload to a big reassembly buffer through a call to the function tipc_recv_fragm(). However, after the return of that call, the logics goes on and passes the fragment buffer to the function tipc_net_route_msg(), which will simply drop it. This behavior is a remnant from the now obsolete multi-cluster functionality, and has no relevance in the current code base. Although currently harmless, this unnecessary call would be fatal after applying the next patch in this series, which introduces a completely new reassembly algorithm. So we change the code to eliminate the redundant call. Signed-off-by: Erik Hugne <erik.hugne@ericsson.com> Reviewed-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Jon Maloy <jon.maloy@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc/link.c')
-rw-r--r--net/tipc/link.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c
index 54163f91b8ae..ada8cadf5af8 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -1657,7 +1657,8 @@ deliver:
}
if (ret == -1)
l_ptr->next_in_no--;
- break;
+ tipc_node_unlock(n_ptr);
+ continue;
case CHANGEOVER_PROTOCOL:
type = msg_type(msg);
if (link_recv_changeover_msg(&l_ptr, &buf)) {