diff options
Diffstat (limited to 'net/tipc/bcast.c')
-rw-r--r-- | net/tipc/bcast.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/net/tipc/bcast.c b/net/tipc/bcast.c index 5aff0844d4d3..52307397e0b1 100644 --- a/net/tipc/bcast.c +++ b/net/tipc/bcast.c | |||
@@ -523,11 +523,13 @@ receive: | |||
523 | tipc_bclink_unlock(net); | 523 | tipc_bclink_unlock(net); |
524 | tipc_node_unlock(node); | 524 | tipc_node_unlock(node); |
525 | } else if (msg_user(msg) == MSG_FRAGMENTER) { | 525 | } else if (msg_user(msg) == MSG_FRAGMENTER) { |
526 | tipc_buf_append(&node->bclink.reasm_buf, &buf); | ||
527 | if (unlikely(!buf && !node->bclink.reasm_buf)) | ||
528 | goto unlock; | ||
529 | tipc_bclink_lock(net); | 526 | tipc_bclink_lock(net); |
530 | bclink_accept_pkt(node, seqno); | 527 | bclink_accept_pkt(node, seqno); |
528 | tipc_buf_append(&node->bclink.reasm_buf, &buf); | ||
529 | if (unlikely(!buf && !node->bclink.reasm_buf)) { | ||
530 | tipc_bclink_unlock(net); | ||
531 | goto unlock; | ||
532 | } | ||
531 | bcl->stats.recv_fragments++; | 533 | bcl->stats.recv_fragments++; |
532 | if (buf) { | 534 | if (buf) { |
533 | bcl->stats.recv_fragmented++; | 535 | bcl->stats.recv_fragmented++; |