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:41:21 +0000 (09:41 +0200)
commite9c1b1ab1225ad8c0e4f61b6cd3eea5867bbf7de
treea7f7ec46675b412e2614b48512d7d8e92f22c6f8
parent4d5bc781eb2ced756b83f897f26920cd2a58484e
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