net: properly release sk_frag.page
authorEric Dumazet <edumazet@google.com>
Wed, 15 Mar 2017 20:21:28 +0000 (13:21 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 Mar 2017 07:35:13 +0000 (09:35 +0200)
commitf3126725228c0fdbe17c18bcc5ace1b86465cce9
treeb8105cc0eaecdaa338816c12a5d8eb326b58f4e6
parent12f0bffc489dff7088c73f600b6be5769bc73cbd
net: properly release sk_frag.page

[ Upstream commit 22a0e18eac7a9e986fec76c60fa4a2926d1291e2 ]

I mistakenly added the code to release sk->sk_frag in
sk_common_release() instead of sk_destruct()

TCP sockets using sk->sk_allocation == GFP_ATOMIC do no call
sk_common_release() at close time, thus leaking one (order-3) page.

iSCSI is using such sockets.

Fixes: 5640f7685831 ("net: use a per task frag allocator")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/core/sock.c