net: properly release sk_frag.page
authorEric Dumazet <edumazet@google.com>
Wed, 15 Mar 2017 20:21:28 +0000 (13:21 -0700)
committerWilly Tarreau <w@1wt.eu>
Wed, 7 Jun 2017 22:47:04 +0000 (00:47 +0200)
commitde9d09c345b73857bd4297e4eedb65a0582da106
tree37778206e1d945c34436f9d0f5914ae8460d7f5a
parentd7a684288d11348df9bd11f4fb7bed918fe3294d
net: properly release sk_frag.page

commit 22a0e18eac7a9e986fec76c60fa4a2926d1291e2 upstream.

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: Willy Tarreau <w@1wt.eu>
net/core/sock.c