diff --git a/fw/http_frame.c b/fw/http_frame.c index b0fb3875bd..77e672dcbc 100644 --- a/fw/http_frame.c +++ b/fw/http_frame.c @@ -1932,14 +1932,6 @@ tfw_h2_insert_frame_header(struct sock *sk, TfwH2Ctx *ctx, TfwStream *stream, char *data; int r; - if (unlikely(type == HTTP2_DATA - && skb_headlen(stream->xmit.skb_head))) - { - if ((r = tfw_http_msg_linear_transform(&it))) - return r; - stream->xmit.skb_head = it.skb_head; - } - data = ss_skb_data_ptr_by_offset(stream->xmit.skb_head, stream->xmit.frame_length); if(unlikely(!data)) diff --git a/fw/ss_skb.c b/fw/ss_skb.c index eeda594afb..3bf00b49a5 100644 --- a/fw/ss_skb.c +++ b/fw/ss_skb.c @@ -231,7 +231,7 @@ __extend_pgfrags(struct sk_buff *skb_head, struct sk_buff *skb, int from, int n) /* No fragments to shift. */ if (!tail_frags) - return 0; + goto finish; /* * Move @n_excess number of page fragments to new SKB. We @@ -262,6 +262,8 @@ __extend_pgfrags(struct sk_buff *skb_head, struct sk_buff *skb, int from, int n) if (n_shift > 0) memmove(&si->frags[from + n], &si->frags[from], n_shift * sizeof(skb_frag_t)); + +finish: si->nr_frags += n - n_excess; return 0;