diff options
author | Jon Paul Maloy <jon.maloy@ericsson.com> | 2015-07-22 10:11:20 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-07-26 16:31:50 -0700 |
commit | cda3696d3d26eb798c94de0dab5bd66ddb5627cb (patch) | |
tree | a76895b3294564437b327e95dd1742daebbd56a9 /net/tipc/socket.h | |
parent | bcd3ffd4f6d7c994c93be2ab8598fdfb2952a1f1 (diff) | |
download | linux-cda3696d3d26eb798c94de0dab5bd66ddb5627cb.tar.gz linux-cda3696d3d26eb798c94de0dab5bd66ddb5627cb.tar.bz2 linux-cda3696d3d26eb798c94de0dab5bd66ddb5627cb.zip |
tipc: clean up socket layer message reception
When a message is received in a socket, one of the call chains
tipc_sk_rcv()->tipc_sk_enqueue()->filter_rcv()(->tipc_sk_proto_rcv())
or
tipc_sk_backlog_rcv()->filter_rcv()(->tipc_sk_proto_rcv())
are followed. At each of these levels we may encounter situations
where the message may need to be rejected, or a new message
produced for transfer back to the sender. Despite recent
improvements, the current code for doing this is perceived
as awkward and hard to follow.
Leveraging the two previous commits in this series, we now
introduce a more uniform handling of such situations. We
let each of the functions in the chain itself produce/reverse
the message to be returned to the sender, but also perform the
actual forwarding. This simplifies the necessary logics within
each function.
Reviewed-by: Ying Xue <ying.xue@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/socket.h')
-rw-r--r-- | net/tipc/socket.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/tipc/socket.h b/net/tipc/socket.h index bf6551389522..4241f22069dc 100644 --- a/net/tipc/socket.h +++ b/net/tipc/socket.h @@ -44,7 +44,7 @@ SKB_TRUESIZE(TIPC_MAX_USER_MSG_SIZE)) int tipc_socket_init(void); void tipc_socket_stop(void); -int tipc_sk_rcv(struct net *net, struct sk_buff_head *inputq); +void tipc_sk_rcv(struct net *net, struct sk_buff_head *inputq); void tipc_sk_mcast_rcv(struct net *net, struct sk_buff_head *arrvq, struct sk_buff_head *inputq); void tipc_sk_reinit(struct net *net); |