Younger Liu
2013-Jun-18 03:40 UTC
[Ocfs2-devel] [PATCH] ocfs2: Free sc->sc_page in sc_kref_release()
There is a memory leak in sc_kref_release().
When free struct o2net_sock_container (sc),
we should release sc->sc_page.
Signed-off-by: Younger Liu <younger.liu at huawei.com>
---
fs/ocfs2/cluster/tcp.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/fs/ocfs2/cluster/tcp.c b/fs/ocfs2/cluster/tcp.c
index aa88bd8..f0272b9 100644
--- a/fs/ocfs2/cluster/tcp.c
+++ b/fs/ocfs2/cluster/tcp.c
@@ -406,6 +406,11 @@ static void sc_kref_release(struct kref *kref)
sc->sc_node = NULL;
o2net_debug_del_sc(sc);
+
+ if (sc->sc_page) {
+ __free_page(sc->sc_page);
+ sc->sc_page = NULL;
+ }
kfree(sc);
}
-- 1.7.9.7
Jeff Liu
2013-Jun-18 04:20 UTC
[Ocfs2-devel] [PATCH] ocfs2: Free sc->sc_page in sc_kref_release()
On 06/18/2013 11:40 AM, Younger Liu wrote:> There is a memory leak in sc_kref_release(). > When free struct o2net_sock_container (sc), > we should release sc->sc_page. > > Signed-off-by: Younger Liu <younger.liu at huawei.com>Looks fine to me, thanks! Reviewed-by: Jie Liu <jeff.liu at oracle.com>> --- > fs/ocfs2/cluster/tcp.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/fs/ocfs2/cluster/tcp.c b/fs/ocfs2/cluster/tcp.c > index aa88bd8..f0272b9 100644 > --- a/fs/ocfs2/cluster/tcp.c > +++ b/fs/ocfs2/cluster/tcp.c > @@ -406,6 +406,11 @@ static void sc_kref_release(struct kref *kref) > sc->sc_node = NULL; > > o2net_debug_del_sc(sc); > + > + if (sc->sc_page) { > + __free_page(sc->sc_page); > + sc->sc_page = NULL; > + } > kfree(sc); > } > > -- 1.7.9.7