Messages in this thread Patch in this message | | | From | Wei Yongjun <> | Subject | [PATCH -next] gfs2: use kmem_cache_free() instead of kfree() | Date | Fri, 9 Apr 2021 08:29:57 +0000 |
| |
memory allocated by kmem_cache_alloc() should be freed using kmem_cache_free(), not kfree().
Fixes: 7d6eec37a105 ("gfs2: Allocate bufdata object before taking log lock") Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> --- fs/gfs2/trans.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/fs/gfs2/trans.c b/fs/gfs2/trans.c index c50de22d7cbf..1b47d08ac4fb 100644 --- a/fs/gfs2/trans.c +++ b/fs/gfs2/trans.c @@ -206,7 +206,7 @@ void gfs2_trans_add_data(struct gfs2_glock *gl, struct buffer_head *bh) } gfs2_log_lock(sdp); if (bh->b_private) { - kfree(bd); + kmem_cache_free(gfs2_bufdata_cachep, bd); bd = bh->b_private; } else { bh->b_private = bd; @@ -246,12 +246,12 @@ void gfs2_trans_add_meta(struct gfs2_glock *gl, struct buffer_head *bh) } gfs2_log_lock(sdp); if (bh->b_private) { - kfree(bd); + kmem_cache_free(gfs2_bufdata_cachep, bd); bd = bh->b_private; } else { lock_page(bh->b_page); if (bh->b_private) { - kfree(bd); + kmem_cache_free(gfs2_bufdata_cachep, bd); bd = bh->b_private; } else { bh->b_private = bd;
| |