diff options
author | Jon Paul Maloy <jon.maloy@ericsson.com> | 2014-05-14 13:39:12 +0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-05-14 23:19:48 +0400 |
commit | 37e22164a8a3c39bdad45aa463b1e69a1fdf4110 (patch) | |
tree | f59a133e852df71ad5d34615f60d08483ec1ed18 /net/tipc/bcast.c | |
parent | 5074ab89c555dd130ceeac129546670423d634b8 (diff) | |
download | linux-37e22164a8a3c39bdad45aa463b1e69a1fdf4110.tar.xz |
tipc: rename and move message reassembly function
The function tipc_link_frag_rcv() is in reality a re-entrant generic
message reassemby function that has nothing in particular to do with
the link, where it is defined now. This becomes obvious when we see
the need to call the function from other places in the code.
In this commit rename it to tipc_buf_append() and move it to the file
msg.c. We also simplify its signature by moving the tail pointer to
the control block of the head buffer, hence making the head buffer
self-contained.
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Reviewed-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc/bcast.c')
-rw-r--r-- | net/tipc/bcast.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/net/tipc/bcast.c b/net/tipc/bcast.c index a0978d0890cb..671f9817b4f4 100644 --- a/net/tipc/bcast.c +++ b/net/tipc/bcast.c @@ -506,18 +506,14 @@ receive: tipc_node_unlock(node); tipc_link_bundle_rcv(buf); } else if (msg_user(msg) == MSG_FRAGMENTER) { - int ret; - ret = tipc_link_frag_rcv(&node->bclink.reasm_head, - &node->bclink.reasm_tail, - &buf); - if (ret == LINK_REASM_ERROR) + tipc_buf_append(&node->bclink.reasm_buf, &buf); + if (unlikely(!buf && !node->bclink.reasm_buf)) goto unlock; tipc_bclink_lock(); bclink_accept_pkt(node, seqno); bcl->stats.recv_fragments++; - if (ret == LINK_REASM_COMPLETE) { + if (buf) { bcl->stats.recv_fragmented++; - /* Point msg to inner header */ msg = buf_msg(buf); tipc_bclink_unlock(); goto receive; |