diff options
Diffstat (limited to 'net/tipc')
| -rw-r--r-- | net/tipc/msg.c | 5 | 
1 files changed, 2 insertions, 3 deletions
| diff --git a/net/tipc/msg.c b/net/tipc/msg.c index 2a78aa701572..32c79c59052b 100644 --- a/net/tipc/msg.c +++ b/net/tipc/msg.c @@ -150,12 +150,11 @@ int tipc_buf_append(struct sk_buff **headbuf, struct sk_buff **buf)  	if (fragid == FIRST_FRAGMENT) {  		if (unlikely(head))  			goto err; -		if (skb_cloned(frag)) -			frag = skb_copy(frag, GFP_ATOMIC); +		*buf = NULL; +		frag = skb_unshare(frag, GFP_ATOMIC);  		if (unlikely(!frag))  			goto err;  		head = *headbuf = frag; -		*buf = NULL;  		TIPC_SKB_CB(head)->tail = NULL;  		if (skb_is_nonlinear(head)) {  			skb_walk_frags(head, tail) { |