Commit 833f8670 authored by Jon Maloy's avatar Jon Maloy Committed by David S. Miller

tipc: simplify signature of tipc_nametbl_lookup_mcast_nodes()

We follow up the preceding commits by reducing the signature of
the function tipc_nametbl_lookup_mcast_nodes().
Signed-off-by: default avatarJon Maloy <jmaloy@redhat.com>
Acked-by: default avatarYing Xue <ying.xue@windriver.com>
Acked-by: default avatarHoang Le <hoang.h.le@dektech.com.au>
Acked-by: default avatarTung Nguyen <tung.q.nguyen@dektech.com.au>
Acked-by: default avatarXin Long <lucien.xin@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 45ceea2d
...@@ -698,20 +698,20 @@ void tipc_nametbl_lookup_mcast_sockets(struct net *net, struct tipc_uaddr *ua, ...@@ -698,20 +698,20 @@ void tipc_nametbl_lookup_mcast_sockets(struct net *net, struct tipc_uaddr *ua,
* Used on nodes which are sending out a multicast/broadcast message * Used on nodes which are sending out a multicast/broadcast message
* Returns a list of nodes, including own node if applicable * Returns a list of nodes, including own node if applicable
*/ */
void tipc_nametbl_lookup_mcast_nodes(struct net *net, u32 type, u32 lower, void tipc_nametbl_lookup_mcast_nodes(struct net *net, struct tipc_uaddr *ua,
u32 upper, struct tipc_nlist *nodes) struct tipc_nlist *nodes)
{ {
struct service_range *sr; struct service_range *sr;
struct tipc_service *sc; struct tipc_service *sc;
struct publication *p; struct publication *p;
rcu_read_lock(); rcu_read_lock();
sc = tipc_service_find(net, type); sc = tipc_service_find(net, ua->sr.type);
if (!sc) if (!sc)
goto exit; goto exit;
spin_lock_bh(&sc->lock); spin_lock_bh(&sc->lock);
service_range_foreach_match(sr, sc, lower, upper) { service_range_foreach_match(sr, sc, ua->sr.lower, ua->sr.upper) {
list_for_each_entry(p, &sr->all_publ, all_publ) { list_for_each_entry(p, &sr->all_publ, all_publ) {
tipc_nlist_add(nodes, p->sk.node); tipc_nlist_add(nodes, p->sk.node);
} }
......
...@@ -114,8 +114,8 @@ bool tipc_nametbl_lookup_anycast(struct net *net, struct tipc_uaddr *ua, ...@@ -114,8 +114,8 @@ bool tipc_nametbl_lookup_anycast(struct net *net, struct tipc_uaddr *ua,
struct tipc_socket_addr *sk); struct tipc_socket_addr *sk);
void tipc_nametbl_lookup_mcast_sockets(struct net *net, struct tipc_uaddr *ua, void tipc_nametbl_lookup_mcast_sockets(struct net *net, struct tipc_uaddr *ua,
bool exact, struct list_head *dports); bool exact, struct list_head *dports);
void tipc_nametbl_lookup_mcast_nodes(struct net *net, u32 type, u32 lower, void tipc_nametbl_lookup_mcast_nodes(struct net *net, struct tipc_uaddr *ua,
u32 upper, struct tipc_nlist *nodes); struct tipc_nlist *nodes);
bool tipc_nametbl_lookup_group(struct net *net, u32 type, u32 instance, bool tipc_nametbl_lookup_group(struct net *net, u32 type, u32 instance,
u32 domain, struct list_head *dsts, u32 domain, struct list_head *dsts,
int *dstcnt, u32 exclude, int *dstcnt, u32 exclude,
......
...@@ -832,7 +832,7 @@ static __poll_t tipc_poll(struct file *file, struct socket *sock, ...@@ -832,7 +832,7 @@ static __poll_t tipc_poll(struct file *file, struct socket *sock,
/** /**
* tipc_sendmcast - send multicast message * tipc_sendmcast - send multicast message
* @sock: socket structure * @sock: socket structure
* @seq: destination address * @ua: destination address struct
* @msg: message to send * @msg: message to send
* @dlen: length of data to send * @dlen: length of data to send
* @timeout: timeout to wait for wakeup * @timeout: timeout to wait for wakeup
...@@ -840,7 +840,7 @@ static __poll_t tipc_poll(struct file *file, struct socket *sock, ...@@ -840,7 +840,7 @@ static __poll_t tipc_poll(struct file *file, struct socket *sock,
* Called from function tipc_sendmsg(), which has done all sanity checks * Called from function tipc_sendmsg(), which has done all sanity checks
* Return: the number of bytes sent on success, or errno * Return: the number of bytes sent on success, or errno
*/ */
static int tipc_sendmcast(struct socket *sock, struct tipc_service_range *seq, static int tipc_sendmcast(struct socket *sock, struct tipc_uaddr *ua,
struct msghdr *msg, size_t dlen, long timeout) struct msghdr *msg, size_t dlen, long timeout)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
...@@ -848,7 +848,6 @@ static int tipc_sendmcast(struct socket *sock, struct tipc_service_range *seq, ...@@ -848,7 +848,6 @@ static int tipc_sendmcast(struct socket *sock, struct tipc_service_range *seq,
struct tipc_msg *hdr = &tsk->phdr; struct tipc_msg *hdr = &tsk->phdr;
struct net *net = sock_net(sk); struct net *net = sock_net(sk);
int mtu = tipc_bcast_get_mtu(net); int mtu = tipc_bcast_get_mtu(net);
struct tipc_mc_method *method = &tsk->mc_method;
struct sk_buff_head pkts; struct sk_buff_head pkts;
struct tipc_nlist dsts; struct tipc_nlist dsts;
int rc; int rc;
...@@ -863,8 +862,7 @@ static int tipc_sendmcast(struct socket *sock, struct tipc_service_range *seq, ...@@ -863,8 +862,7 @@ static int tipc_sendmcast(struct socket *sock, struct tipc_service_range *seq,
/* Lookup destination nodes */ /* Lookup destination nodes */
tipc_nlist_init(&dsts, tipc_own_addr(net)); tipc_nlist_init(&dsts, tipc_own_addr(net));
tipc_nametbl_lookup_mcast_nodes(net, seq->type, seq->lower, tipc_nametbl_lookup_mcast_nodes(net, ua, &dsts);
seq->upper, &dsts);
if (!dsts.local && !dsts.remote) if (!dsts.local && !dsts.remote)
return -EHOSTUNREACH; return -EHOSTUNREACH;
...@@ -874,9 +872,9 @@ static int tipc_sendmcast(struct socket *sock, struct tipc_service_range *seq, ...@@ -874,9 +872,9 @@ static int tipc_sendmcast(struct socket *sock, struct tipc_service_range *seq,
msg_set_lookup_scope(hdr, TIPC_CLUSTER_SCOPE); msg_set_lookup_scope(hdr, TIPC_CLUSTER_SCOPE);
msg_set_destport(hdr, 0); msg_set_destport(hdr, 0);
msg_set_destnode(hdr, 0); msg_set_destnode(hdr, 0);
msg_set_nametype(hdr, seq->type); msg_set_nametype(hdr, ua->sr.type);
msg_set_namelower(hdr, seq->lower); msg_set_namelower(hdr, ua->sr.lower);
msg_set_nameupper(hdr, seq->upper); msg_set_nameupper(hdr, ua->sr.upper);
/* Build message as chain of buffers */ /* Build message as chain of buffers */
__skb_queue_head_init(&pkts); __skb_queue_head_init(&pkts);
...@@ -886,7 +884,7 @@ static int tipc_sendmcast(struct socket *sock, struct tipc_service_range *seq, ...@@ -886,7 +884,7 @@ static int tipc_sendmcast(struct socket *sock, struct tipc_service_range *seq,
if (unlikely(rc == dlen)) { if (unlikely(rc == dlen)) {
trace_tipc_sk_sendmcast(sk, skb_peek(&pkts), trace_tipc_sk_sendmcast(sk, skb_peek(&pkts),
TIPC_DUMP_SK_SNDQ, " "); TIPC_DUMP_SK_SNDQ, " ");
rc = tipc_mcast_xmit(net, &pkts, method, &dsts, rc = tipc_mcast_xmit(net, &pkts, &tsk->mc_method, &dsts,
&tsk->cong_link_cnt); &tsk->cong_link_cnt);
} }
...@@ -1479,7 +1477,7 @@ static int __tipc_sendmsg(struct socket *sock, struct msghdr *m, size_t dlen) ...@@ -1479,7 +1477,7 @@ static int __tipc_sendmsg(struct socket *sock, struct msghdr *m, size_t dlen)
/* Determine destination */ /* Determine destination */
if (atype == TIPC_SERVICE_RANGE) { if (atype == TIPC_SERVICE_RANGE) {
return tipc_sendmcast(sock, &ua->sr, m, dlen, timeout); return tipc_sendmcast(sock, ua, m, dlen, timeout);
} else if (atype == TIPC_SERVICE_ADDR) { } else if (atype == TIPC_SERVICE_ADDR) {
skaddr.node = ua->lookup_node; skaddr.node = ua->lookup_node;
ua->scope = tipc_node2scope(skaddr.node); ua->scope = tipc_node2scope(skaddr.node);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment