summaryrefslogtreecommitdiffstats
path: root/net/tipc/node.c
diff options
context:
space:
mode:
authorHoang Le <hoang.h.le@dektech.com.au>2020-03-26 09:50:29 +0700
committerDavid S. Miller <davem@davemloft.net>2020-03-26 11:21:02 -0700
commit8b1e5b0a99f04bda2d6c85ecfe5e68a356c10914 (patch)
treee0f56ef14ca4e736804e12d6e9c93357bc303f48 /net/tipc/node.c
parent9fb16955fb661945ddffce4504dcffbe55cd518a (diff)
downloadlinux-stable-8b1e5b0a99f04bda2d6c85ecfe5e68a356c10914.tar.gz
linux-stable-8b1e5b0a99f04bda2d6c85ecfe5e68a356c10914.tar.bz2
linux-stable-8b1e5b0a99f04bda2d6c85ecfe5e68a356c10914.zip
tipc: Add a missing case of TIPC_DIRECT_MSG type
In the commit f73b12812a3d ("tipc: improve throughput between nodes in netns"), we're missing a check to handle TIPC_DIRECT_MSG type, it's still using old sending mechanism for this message type. So, throughput improvement is not significant as expected. Besides that, when sending a large message with that type, we're also handle wrong receiving queue, it should be enqueued in socket receiving instead of multicast messages. Fix this by adding the missing case for TIPC_DIRECT_MSG. Fixes: f73b12812a3d ("tipc: improve throughput between nodes in netns") Reported-by: Tuong Lien <tuong.t.lien@dektech.com.au> Signed-off-by: Hoang Le <hoang.h.le@dektech.com.au> Acked-by: Jon Maloy <jmaloy@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc/node.c')
-rw-r--r--net/tipc/node.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/tipc/node.c b/net/tipc/node.c
index 0c88778c88b5..10292c942384 100644
--- a/net/tipc/node.c
+++ b/net/tipc/node.c
@@ -1586,7 +1586,8 @@ static void tipc_lxc_xmit(struct net *peer_net, struct sk_buff_head *list)
case TIPC_MEDIUM_IMPORTANCE:
case TIPC_HIGH_IMPORTANCE:
case TIPC_CRITICAL_IMPORTANCE:
- if (msg_connected(hdr) || msg_named(hdr)) {
+ if (msg_connected(hdr) || msg_named(hdr) ||
+ msg_direct(hdr)) {
tipc_loopback_trace(peer_net, list);
spin_lock_init(&list->lock);
tipc_sk_rcv(peer_net, list);