ipv6: fold sockcm_cookie into ipcm6_cookie
ipcm_cookie includes sockcm_cookie. Do the same for ipcm6_cookie. This reduces the number of arguments that need to be passed around, applies ipcm6_init to all cookie fields at once and reduces code differentiation between ipv4 and ipv6. Signed-off-by: Willem de Bruijn <willemb@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
657a066702
commit
5fdaa88dfe
@@ -1141,12 +1141,10 @@ int udpv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
|
||||
int err;
|
||||
int is_udplite = IS_UDPLITE(sk);
|
||||
int (*getfrag)(void *, char *, int, int, int, struct sk_buff *);
|
||||
struct sockcm_cookie sockc;
|
||||
|
||||
ipcm6_init(&ipc6);
|
||||
ipc6.gso_size = up->gso_size;
|
||||
sockc.tsflags = sk->sk_tsflags;
|
||||
sockc.transmit_time = 0;
|
||||
ipc6.sockc.tsflags = sk->sk_tsflags;
|
||||
|
||||
/* destination address check */
|
||||
if (sin6) {
|
||||
@@ -1281,7 +1279,7 @@ do_udp_sendmsg:
|
||||
err = udp_cmsg_send(sk, msg, &ipc6.gso_size);
|
||||
if (err > 0)
|
||||
err = ip6_datagram_send_ctl(sock_net(sk), sk, msg, &fl6,
|
||||
&ipc6, &sockc);
|
||||
&ipc6);
|
||||
if (err < 0) {
|
||||
fl6_sock_release(flowlabel);
|
||||
return err;
|
||||
@@ -1375,7 +1373,7 @@ back_from_confirm:
|
||||
skb = ip6_make_skb(sk, getfrag, msg, ulen,
|
||||
sizeof(struct udphdr), &ipc6,
|
||||
&fl6, (struct rt6_info *)dst,
|
||||
msg->msg_flags, &cork, &sockc);
|
||||
msg->msg_flags, &cork);
|
||||
err = PTR_ERR(skb);
|
||||
if (!IS_ERR_OR_NULL(skb))
|
||||
err = udp_v6_send_skb(skb, &fl6, &cork.base);
|
||||
@@ -1401,7 +1399,7 @@ do_append_data:
|
||||
up->len += ulen;
|
||||
err = ip6_append_data(sk, getfrag, msg, ulen, sizeof(struct udphdr),
|
||||
&ipc6, &fl6, (struct rt6_info *)dst,
|
||||
corkreq ? msg->msg_flags|MSG_MORE : msg->msg_flags, &sockc);
|
||||
corkreq ? msg->msg_flags|MSG_MORE : msg->msg_flags);
|
||||
if (err)
|
||||
udp_v6_flush_pending_frames(sk);
|
||||
else if (!corkreq)
|
||||
|
Reference in New Issue
Block a user