Lines Matching refs:head

196 		struct sk_buff *head = qp->q.fragments;  in ip_expire()  local
206 head->dev = dev_get_by_index_rcu(net, qp->iif); in ip_expire()
207 if (!head->dev) in ip_expire()
211 iph = ip_hdr(head); in ip_expire()
212 err = ip_route_input_noref(head, iph->daddr, iph->saddr, in ip_expire()
213 iph->tos, head->dev); in ip_expire()
223 (skb_rtable(head)->rt_type != RTN_LOCAL))) in ip_expire()
227 icmp_send(head, ICMP_TIME_EXCEEDED, ICMP_EXC_FRAGTIME, 0); in ip_expire()
507 struct sk_buff *fp, *head = qp->q.fragments; in ip_frag_reasm() local
523 head = prev->next; in ip_frag_reasm()
524 fp = skb_clone(head, GFP_ATOMIC); in ip_frag_reasm()
528 fp->next = head->next; in ip_frag_reasm()
533 skb_morph(head, qp->q.fragments); in ip_frag_reasm()
534 head->next = qp->q.fragments->next; in ip_frag_reasm()
537 qp->q.fragments = head; in ip_frag_reasm()
540 WARN_ON(!head); in ip_frag_reasm()
541 WARN_ON(FRAG_CB(head)->offset != 0); in ip_frag_reasm()
544 ihlen = ip_hdrlen(head); in ip_frag_reasm()
552 if (skb_unclone(head, GFP_ATOMIC)) in ip_frag_reasm()
558 if (skb_has_frag_list(head)) { in ip_frag_reasm()
565 clone->next = head->next; in ip_frag_reasm()
566 head->next = clone; in ip_frag_reasm()
567 skb_shinfo(clone)->frag_list = skb_shinfo(head)->frag_list; in ip_frag_reasm()
568 skb_frag_list_init(head); in ip_frag_reasm()
569 for (i = 0; i < skb_shinfo(head)->nr_frags; i++) in ip_frag_reasm()
570 plen += skb_frag_size(&skb_shinfo(head)->frags[i]); in ip_frag_reasm()
571 clone->len = clone->data_len = head->data_len - plen; in ip_frag_reasm()
572 head->data_len -= clone->len; in ip_frag_reasm()
573 head->len -= clone->len; in ip_frag_reasm()
575 clone->ip_summed = head->ip_summed; in ip_frag_reasm()
579 skb_push(head, head->data - skb_network_header(head)); in ip_frag_reasm()
581 sum_truesize = head->truesize; in ip_frag_reasm()
582 for (fp = head->next; fp;) { in ip_frag_reasm()
588 if (head->ip_summed != fp->ip_summed) in ip_frag_reasm()
589 head->ip_summed = CHECKSUM_NONE; in ip_frag_reasm()
590 else if (head->ip_summed == CHECKSUM_COMPLETE) in ip_frag_reasm()
591 head->csum = csum_add(head->csum, fp->csum); in ip_frag_reasm()
593 if (skb_try_coalesce(head, fp, &headstolen, &delta)) { in ip_frag_reasm()
596 if (!skb_shinfo(head)->frag_list) in ip_frag_reasm()
597 skb_shinfo(head)->frag_list = fp; in ip_frag_reasm()
598 head->data_len += fp->len; in ip_frag_reasm()
599 head->len += fp->len; in ip_frag_reasm()
600 head->truesize += fp->truesize; in ip_frag_reasm()
606 head->next = NULL; in ip_frag_reasm()
607 head->dev = dev; in ip_frag_reasm()
608 head->tstamp = qp->q.stamp; in ip_frag_reasm()
609 IPCB(head)->frag_max_size = qp->q.max_size; in ip_frag_reasm()
611 iph = ip_hdr(head); in ip_frag_reasm()