diff options
author | Shan Wei <shanwei@cn.fujitsu.com> | 2010-04-15 12:43:08 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-04-16 02:36:37 -0400 |
commit | 4e15ed4d930297c127d280ca1d0c785be870def4 (patch) | |
tree | e0808d650ae66cf273758496100d3d24739a9e48 /net | |
parent | 0eecb784942792863b77dfe11e0c7e286e92db85 (diff) |
net: replace ipfragok with skb->local_df
As Herbert Xu said: we should be able to simply replace ipfragok
with skb->local_df. commit f88037(sctp: Drop ipfargok in sctp_xmit function)
has droped ipfragok and set local_df value properly.
The patch kills the ipfragok parameter of .queue_xmit().
Signed-off-by: Shan Wei <shanwei@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/dccp/ipv6.c | 4 | ||||
-rw-r--r-- | net/dccp/output.c | 2 | ||||
-rw-r--r-- | net/ipv4/ip_output.c | 4 | ||||
-rw-r--r-- | net/ipv4/tcp_output.c | 2 | ||||
-rw-r--r-- | net/ipv6/inet6_connection_sock.c | 4 | ||||
-rw-r--r-- | net/ipv6/ip6_output.c | 2 | ||||
-rw-r--r-- | net/ipv6/tcp_ipv6.c | 4 | ||||
-rw-r--r-- | net/l2tp/l2tp_core.c | 3 | ||||
-rw-r--r-- | net/l2tp/l2tp_ip.c | 2 | ||||
-rw-r--r-- | net/sctp/ipv6.c | 2 | ||||
-rw-r--r-- | net/sctp/protocol.c | 2 |
11 files changed, 16 insertions, 15 deletions
diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c index ab1ab95946df..091698899594 100644 --- a/net/dccp/ipv6.c +++ b/net/dccp/ipv6.c | |||
@@ -292,7 +292,7 @@ static int dccp_v6_send_response(struct sock *sk, struct request_sock *req, | |||
292 | &ireq6->loc_addr, | 292 | &ireq6->loc_addr, |
293 | &ireq6->rmt_addr); | 293 | &ireq6->rmt_addr); |
294 | ipv6_addr_copy(&fl.fl6_dst, &ireq6->rmt_addr); | 294 | ipv6_addr_copy(&fl.fl6_dst, &ireq6->rmt_addr); |
295 | err = ip6_xmit(sk, skb, &fl, opt, 0); | 295 | err = ip6_xmit(sk, skb, &fl, opt); |
296 | err = net_xmit_eval(err); | 296 | err = net_xmit_eval(err); |
297 | } | 297 | } |
298 | 298 | ||
@@ -347,7 +347,7 @@ static void dccp_v6_ctl_send_reset(struct sock *sk, struct sk_buff *rxskb) | |||
347 | if (!ip6_dst_lookup(ctl_sk, &dst, &fl)) { | 347 | if (!ip6_dst_lookup(ctl_sk, &dst, &fl)) { |
348 | if (xfrm_lookup(net, &dst, &fl, NULL, 0) >= 0) { | 348 | if (xfrm_lookup(net, &dst, &fl, NULL, 0) >= 0) { |
349 | skb_dst_set(skb, dst); | 349 | skb_dst_set(skb, dst); |
350 | ip6_xmit(ctl_sk, skb, &fl, NULL, 0); | 350 | ip6_xmit(ctl_sk, skb, &fl, NULL); |
351 | DCCP_INC_STATS_BH(DCCP_MIB_OUTSEGS); | 351 | DCCP_INC_STATS_BH(DCCP_MIB_OUTSEGS); |
352 | DCCP_INC_STATS_BH(DCCP_MIB_OUTRSTS); | 352 | DCCP_INC_STATS_BH(DCCP_MIB_OUTRSTS); |
353 | return; | 353 | return; |
diff --git a/net/dccp/output.c b/net/dccp/output.c index b8d98e3c052a..e98b65e9569f 100644 --- a/net/dccp/output.c +++ b/net/dccp/output.c | |||
@@ -136,7 +136,7 @@ static int dccp_transmit_skb(struct sock *sk, struct sk_buff *skb) | |||
136 | 136 | ||
137 | DCCP_INC_STATS(DCCP_MIB_OUTSEGS); | 137 | DCCP_INC_STATS(DCCP_MIB_OUTSEGS); |
138 | 138 | ||
139 | err = icsk->icsk_af_ops->queue_xmit(skb, 0); | 139 | err = icsk->icsk_af_ops->queue_xmit(skb); |
140 | return net_xmit_eval(err); | 140 | return net_xmit_eval(err); |
141 | } | 141 | } |
142 | return -ENOBUFS; | 142 | return -ENOBUFS; |
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index c65f18e0936e..512af81b750f 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c | |||
@@ -311,7 +311,7 @@ int ip_output(struct sk_buff *skb) | |||
311 | !(IPCB(skb)->flags & IPSKB_REROUTED)); | 311 | !(IPCB(skb)->flags & IPSKB_REROUTED)); |
312 | } | 312 | } |
313 | 313 | ||
314 | int ip_queue_xmit(struct sk_buff *skb, int ipfragok) | 314 | int ip_queue_xmit(struct sk_buff *skb) |
315 | { | 315 | { |
316 | struct sock *sk = skb->sk; | 316 | struct sock *sk = skb->sk; |
317 | struct inet_sock *inet = inet_sk(sk); | 317 | struct inet_sock *inet = inet_sk(sk); |
@@ -370,7 +370,7 @@ packet_routed: | |||
370 | skb_reset_network_header(skb); | 370 | skb_reset_network_header(skb); |
371 | iph = ip_hdr(skb); | 371 | iph = ip_hdr(skb); |
372 | *((__be16 *)iph) = htons((4 << 12) | (5 << 8) | (inet->tos & 0xff)); | 372 | *((__be16 *)iph) = htons((4 << 12) | (5 << 8) | (inet->tos & 0xff)); |
373 | if (ip_dont_fragment(sk, &rt->u.dst) && !ipfragok) | 373 | if (ip_dont_fragment(sk, &rt->u.dst) && !skb->local_df) |
374 | iph->frag_off = htons(IP_DF); | 374 | iph->frag_off = htons(IP_DF); |
375 | else | 375 | else |
376 | iph->frag_off = 0; | 376 | iph->frag_off = 0; |
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index e46849989a53..2b7d71fb8439 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c | |||
@@ -890,7 +890,7 @@ static int tcp_transmit_skb(struct sock *sk, struct sk_buff *skb, int clone_it, | |||
890 | if (after(tcb->end_seq, tp->snd_nxt) || tcb->seq == tcb->end_seq) | 890 | if (after(tcb->end_seq, tp->snd_nxt) || tcb->seq == tcb->end_seq) |
891 | TCP_INC_STATS(sock_net(sk), TCP_MIB_OUTSEGS); | 891 | TCP_INC_STATS(sock_net(sk), TCP_MIB_OUTSEGS); |
892 | 892 | ||
893 | err = icsk->icsk_af_ops->queue_xmit(skb, 0); | 893 | err = icsk->icsk_af_ops->queue_xmit(skb); |
894 | if (likely(err <= 0)) | 894 | if (likely(err <= 0)) |
895 | return err; | 895 | return err; |
896 | 896 | ||
diff --git a/net/ipv6/inet6_connection_sock.c b/net/ipv6/inet6_connection_sock.c index 628db24bcf22..0c5e3c3b7fd5 100644 --- a/net/ipv6/inet6_connection_sock.c +++ b/net/ipv6/inet6_connection_sock.c | |||
@@ -178,7 +178,7 @@ struct dst_entry *__inet6_csk_dst_check(struct sock *sk, u32 cookie) | |||
178 | return dst; | 178 | return dst; |
179 | } | 179 | } |
180 | 180 | ||
181 | int inet6_csk_xmit(struct sk_buff *skb, int ipfragok) | 181 | int inet6_csk_xmit(struct sk_buff *skb) |
182 | { | 182 | { |
183 | struct sock *sk = skb->sk; | 183 | struct sock *sk = skb->sk; |
184 | struct inet_sock *inet = inet_sk(sk); | 184 | struct inet_sock *inet = inet_sk(sk); |
@@ -234,7 +234,7 @@ int inet6_csk_xmit(struct sk_buff *skb, int ipfragok) | |||
234 | /* Restore final destination back after routing done */ | 234 | /* Restore final destination back after routing done */ |
235 | ipv6_addr_copy(&fl.fl6_dst, &np->daddr); | 235 | ipv6_addr_copy(&fl.fl6_dst, &np->daddr); |
236 | 236 | ||
237 | return ip6_xmit(sk, skb, &fl, np->opt, 0); | 237 | return ip6_xmit(sk, skb, &fl, np->opt); |
238 | } | 238 | } |
239 | 239 | ||
240 | EXPORT_SYMBOL_GPL(inet6_csk_xmit); | 240 | EXPORT_SYMBOL_GPL(inet6_csk_xmit); |
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index f3a847e3ec88..141819f0c6f1 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c | |||
@@ -185,7 +185,7 @@ int ip6_output(struct sk_buff *skb) | |||
185 | */ | 185 | */ |
186 | 186 | ||
187 | int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl, | 187 | int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl, |
188 | struct ipv6_txoptions *opt, int ipfragok) | 188 | struct ipv6_txoptions *opt) |
189 | { | 189 | { |
190 | struct net *net = sock_net(sk); | 190 | struct net *net = sock_net(sk); |
191 | struct ipv6_pinfo *np = inet6_sk(sk); | 191 | struct ipv6_pinfo *np = inet6_sk(sk); |
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index b429dfdd69dc..bd5ef7b6e48e 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c | |||
@@ -509,7 +509,7 @@ static int tcp_v6_send_synack(struct sock *sk, struct request_sock *req, | |||
509 | __tcp_v6_send_check(skb, &treq->loc_addr, &treq->rmt_addr); | 509 | __tcp_v6_send_check(skb, &treq->loc_addr, &treq->rmt_addr); |
510 | 510 | ||
511 | ipv6_addr_copy(&fl.fl6_dst, &treq->rmt_addr); | 511 | ipv6_addr_copy(&fl.fl6_dst, &treq->rmt_addr); |
512 | err = ip6_xmit(sk, skb, &fl, opt, 0); | 512 | err = ip6_xmit(sk, skb, &fl, opt); |
513 | err = net_xmit_eval(err); | 513 | err = net_xmit_eval(err); |
514 | } | 514 | } |
515 | 515 | ||
@@ -1071,7 +1071,7 @@ static void tcp_v6_send_response(struct sk_buff *skb, u32 seq, u32 ack, u32 win, | |||
1071 | if (!ip6_dst_lookup(ctl_sk, &dst, &fl)) { | 1071 | if (!ip6_dst_lookup(ctl_sk, &dst, &fl)) { |
1072 | if (xfrm_lookup(net, &dst, &fl, NULL, 0) >= 0) { | 1072 | if (xfrm_lookup(net, &dst, &fl, NULL, 0) >= 0) { |
1073 | skb_dst_set(buff, dst); | 1073 | skb_dst_set(buff, dst); |
1074 | ip6_xmit(ctl_sk, buff, &fl, NULL, 0); | 1074 | ip6_xmit(ctl_sk, buff, &fl, NULL); |
1075 | TCP_INC_STATS_BH(net, TCP_MIB_OUTSEGS); | 1075 | TCP_INC_STATS_BH(net, TCP_MIB_OUTSEGS); |
1076 | if (rst) | 1076 | if (rst) |
1077 | TCP_INC_STATS_BH(net, TCP_MIB_OUTRSTS); | 1077 | TCP_INC_STATS_BH(net, TCP_MIB_OUTRSTS); |
diff --git a/net/l2tp/l2tp_core.c b/net/l2tp/l2tp_core.c index 98dfcce1a5fc..ecc7aea9efe4 100644 --- a/net/l2tp/l2tp_core.c +++ b/net/l2tp/l2tp_core.c | |||
@@ -954,7 +954,8 @@ int l2tp_xmit_core(struct l2tp_session *session, struct sk_buff *skb, size_t dat | |||
954 | } | 954 | } |
955 | 955 | ||
956 | /* Queue the packet to IP for output */ | 956 | /* Queue the packet to IP for output */ |
957 | error = ip_queue_xmit(skb, 1); | 957 | skb->local_df = 1; |
958 | error = ip_queue_xmit(skb); | ||
958 | 959 | ||
959 | /* Update stats */ | 960 | /* Update stats */ |
960 | if (error >= 0) { | 961 | if (error >= 0) { |
diff --git a/net/l2tp/l2tp_ip.c b/net/l2tp/l2tp_ip.c index 75bf784ba18d..0852512d392c 100644 --- a/net/l2tp/l2tp_ip.c +++ b/net/l2tp/l2tp_ip.c | |||
@@ -501,7 +501,7 @@ static int l2tp_ip_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *m | |||
501 | skb_dst_set(skb, dst_clone(&rt->u.dst)); | 501 | skb_dst_set(skb, dst_clone(&rt->u.dst)); |
502 | 502 | ||
503 | /* Queue the packet to IP for output */ | 503 | /* Queue the packet to IP for output */ |
504 | rc = ip_queue_xmit(skb, 0); | 504 | rc = ip_queue_xmit(skb); |
505 | 505 | ||
506 | error: | 506 | error: |
507 | /* Update stats */ | 507 | /* Update stats */ |
diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c index 14db5689fb89..732689140fb8 100644 --- a/net/sctp/ipv6.c +++ b/net/sctp/ipv6.c | |||
@@ -232,7 +232,7 @@ static int sctp_v6_xmit(struct sk_buff *skb, struct sctp_transport *transport) | |||
232 | if (!(transport->param_flags & SPP_PMTUD_ENABLE)) | 232 | if (!(transport->param_flags & SPP_PMTUD_ENABLE)) |
233 | skb->local_df = 1; | 233 | skb->local_df = 1; |
234 | 234 | ||
235 | return ip6_xmit(sk, skb, &fl, np->opt, 0); | 235 | return ip6_xmit(sk, skb, &fl, np->opt); |
236 | } | 236 | } |
237 | 237 | ||
238 | /* Returns the dst cache entry for the given source and destination ip | 238 | /* Returns the dst cache entry for the given source and destination ip |
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c index a56f98e82f92..704298f4b284 100644 --- a/net/sctp/protocol.c +++ b/net/sctp/protocol.c | |||
@@ -854,7 +854,7 @@ static inline int sctp_v4_xmit(struct sk_buff *skb, | |||
854 | IP_PMTUDISC_DO : IP_PMTUDISC_DONT; | 854 | IP_PMTUDISC_DO : IP_PMTUDISC_DONT; |
855 | 855 | ||
856 | SCTP_INC_STATS(SCTP_MIB_OUTSCTPPACKS); | 856 | SCTP_INC_STATS(SCTP_MIB_OUTSCTPPACKS); |
857 | return ip_queue_xmit(skb, 0); | 857 | return ip_queue_xmit(skb); |
858 | } | 858 | } |
859 | 859 | ||
860 | static struct sctp_af sctp_af_inet; | 860 | static struct sctp_af sctp_af_inet; |