]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.4.172/f2fs-free-meta-pages-if-sanity-check-for-ckpt-is-failed.patch
4.14-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 4.4.172 / f2fs-free-meta-pages-if-sanity-check-for-ckpt-is-failed.patch
CommitLineData
c2a518a0
GKH
1From foo@baz Fri Jan 18 09:16:11 CET 2019
2From: Jaegeuk Kim <jaegeuk@kernel.org>
3Date: Mon, 5 Dec 2016 17:25:32 -0800
4Subject: f2fs: free meta pages if sanity check for ckpt is failed
5
6From: Jaegeuk Kim <jaegeuk@kernel.org>
7
8commit a2125ff7dd1ed3a2a53cdc1f8f9c9cec9cfaa7ab upstream.
9
10This fixes missing freeing meta pages in the error case.
11
12Tested-by: Eric Biggers <ebiggers@google.com>
13Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
14Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
15Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
16---
17 fs/f2fs/checkpoint.c | 5 ++++-
18 1 file changed, 4 insertions(+), 1 deletion(-)
19
20--- a/fs/f2fs/checkpoint.c
21+++ b/fs/f2fs/checkpoint.c
22@@ -708,7 +708,7 @@ int get_valid_checkpoint(struct f2fs_sb_
23
24 /* Sanity checking of checkpoint */
25 if (sanity_check_ckpt(sbi))
26- goto fail_no_cp;
27+ goto free_fail_no_cp;
28
29 if (cur_page == cp1)
30 sbi->cur_cp_pack = 1;
31@@ -736,6 +736,9 @@ done:
32 f2fs_put_page(cp2, 1);
33 return 0;
34
35+free_fail_no_cp:
36+ f2fs_put_page(cp1, 1);
37+ f2fs_put_page(cp2, 1);
38 fail_no_cp:
39 kfree(sbi->ckpt);
40 return -EINVAL;