• Home
  • Raw
  • Download

Lines Matching refs:cork

956 			    struct inet_cork *cork,  in __ip_append_data()  argument
967 struct ip_options *opt = cork->opt; in __ip_append_data()
976 struct rtable *rt = (struct rtable *)cork->dst; in __ip_append_data()
984 mtu = cork->gso_size ? IP_MAX_MTU : cork->fragsize; in __ip_append_data()
985 paged = !!cork->gso_size; in __ip_append_data()
987 if (cork->tx_flags & SKBTX_ANY_SW_TSTAMP && in __ip_append_data()
997 if (cork->length + length > maxnonfragsize - fragheaderlen) { in __ip_append_data()
1010 (!(flags & MSG_MORE) || cork->gso_size) && in __ip_append_data()
1028 cork->length += length; in __ip_append_data()
1146 skb_shinfo(skb)->tx_flags = cork->tx_flags; in __ip_append_data()
1147 cork->tx_flags = 0; in __ip_append_data()
1229 cork->length -= length; in __ip_append_data()
1235 static int ip_setup_cork(struct sock *sk, struct inet_cork *cork, in ip_setup_cork() argument
1250 if (!cork->opt) { in ip_setup_cork()
1251 cork->opt = kmalloc(sizeof(struct ip_options) + 40, in ip_setup_cork()
1253 if (unlikely(!cork->opt)) in ip_setup_cork()
1256 memcpy(cork->opt, &opt->opt, sizeof(struct ip_options) + opt->opt.optlen); in ip_setup_cork()
1257 cork->flags |= IPCORK_OPT; in ip_setup_cork()
1258 cork->addr = ipc->addr; in ip_setup_cork()
1261 cork->fragsize = ip_sk_use_pmtu(sk) ? in ip_setup_cork()
1264 if (!inetdev_valid_mtu(cork->fragsize)) in ip_setup_cork()
1267 cork->gso_size = ipc->gso_size; in ip_setup_cork()
1269 cork->dst = &rt->dst; in ip_setup_cork()
1273 cork->length = 0; in ip_setup_cork()
1274 cork->ttl = ipc->ttl; in ip_setup_cork()
1275 cork->tos = ipc->tos; in ip_setup_cork()
1276 cork->mark = ipc->sockc.mark; in ip_setup_cork()
1277 cork->priority = ipc->priority; in ip_setup_cork()
1278 cork->transmit_time = ipc->sockc.transmit_time; in ip_setup_cork()
1279 cork->tx_flags = 0; in ip_setup_cork()
1280 sock_tx_timestamp(sk, ipc->sockc.tsflags, &cork->tx_flags); in ip_setup_cork()
1310 err = ip_setup_cork(sk, &inet->cork.base, ipc, rtp); in ip_append_data()
1317 return __ip_append_data(sk, fl4, &sk->sk_write_queue, &inet->cork.base, in ip_append_data()
1329 struct inet_cork *cork; in ip_append_page() local
1345 cork = &inet->cork.base; in ip_append_page()
1346 rt = (struct rtable *)cork->dst; in ip_append_page()
1347 if (cork->flags & IPCORK_OPT) in ip_append_page()
1348 opt = cork->opt; in ip_append_page()
1354 mtu = cork->gso_size ? IP_MAX_MTU : cork->fragsize; in ip_append_page()
1360 if (cork->length + size > maxnonfragsize - fragheaderlen) { in ip_append_page()
1370 cork->length += size; in ip_append_page()
1447 cork->length -= size; in ip_append_page()
1452 static void ip_cork_release(struct inet_cork *cork) in ip_cork_release() argument
1454 cork->flags &= ~IPCORK_OPT; in ip_cork_release()
1455 kfree(cork->opt); in ip_cork_release()
1456 cork->opt = NULL; in ip_cork_release()
1457 dst_release(cork->dst); in ip_cork_release()
1458 cork->dst = NULL; in ip_cork_release()
1468 struct inet_cork *cork) in __ip_make_skb() argument
1475 struct rtable *rt = (struct rtable *)cork->dst; in __ip_make_skb()
1514 if (cork->flags & IPCORK_OPT) in __ip_make_skb()
1515 opt = cork->opt; in __ip_make_skb()
1517 if (cork->ttl != 0) in __ip_make_skb()
1518 ttl = cork->ttl; in __ip_make_skb()
1527 iph->tos = (cork->tos != -1) ? cork->tos : inet->tos; in __ip_make_skb()
1536 ip_options_build(skb, opt, cork->addr, rt, 0); in __ip_make_skb()
1539 skb->priority = (cork->tos != -1) ? cork->priority: sk->sk_priority; in __ip_make_skb()
1540 skb->mark = cork->mark; in __ip_make_skb()
1541 skb->tstamp = cork->transmit_time; in __ip_make_skb()
1546 cork->dst = NULL; in __ip_make_skb()
1553 ip_cork_release(cork); in __ip_make_skb()
1590 struct inet_cork *cork) in __ip_flush_pending_frames() argument
1597 ip_cork_release(cork); in __ip_flush_pending_frames()
1602 __ip_flush_pending_frames(sk, &sk->sk_write_queue, &inet_sk(sk)->cork.base); in ip_flush_pending_frames()
1611 struct inet_cork *cork, unsigned int flags) in ip_make_skb() argument
1621 cork->flags = 0; in ip_make_skb()
1622 cork->addr = 0; in ip_make_skb()
1623 cork->opt = NULL; in ip_make_skb()
1624 err = ip_setup_cork(sk, cork, ipc, rtp); in ip_make_skb()
1628 err = __ip_append_data(sk, fl4, &queue, cork, in ip_make_skb()
1632 __ip_flush_pending_frames(sk, &queue, cork); in ip_make_skb()
1636 return __ip_make_skb(sk, fl4, &queue, cork); in ip_make_skb()