| From 512e7852ba13c7eac11d4415502326c5b0b3c495 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 5 Sep 2018 14:54:02 +0800 |
| Subject: f2fs: fix memory leak of percpu counter in fill_super() |
| |
| From: Chao Yu <yuchao0@huawei.com> |
| |
| [ Upstream commit 4a70e255449c9a13eed7a6eeecc85a1ea63cef76 ] |
| |
| In fill_super -> init_percpu_info, we should destroy percpu counter |
| in error path, otherwise memory allcoated for percpu counter will |
| leak. |
| |
| Signed-off-by: Chao Yu <yuchao0@huawei.com> |
| Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| fs/f2fs/super.c | 6 +++++- |
| 1 file changed, 5 insertions(+), 1 deletion(-) |
| |
| diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c |
| index 58931d55dc1d2..c5d28e92d146e 100644 |
| --- a/fs/f2fs/super.c |
| +++ b/fs/f2fs/super.c |
| @@ -2516,8 +2516,12 @@ static int init_percpu_info(struct f2fs_sb_info *sbi) |
| if (err) |
| return err; |
| |
| - return percpu_counter_init(&sbi->total_valid_inode_count, 0, |
| + err = percpu_counter_init(&sbi->total_valid_inode_count, 0, |
| GFP_KERNEL); |
| + if (err) |
| + percpu_counter_destroy(&sbi->alloc_valid_block_count); |
| + |
| + return err; |
| } |
| |
| #ifdef CONFIG_BLK_DEV_ZONED |
| -- |
| 2.20.1 |
| |