From e8a6b9a1552e0e37fd03c2dae132d6c664024e06 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 18 Dec 2018 17:23:05 +0100 Subject: [PATCH] 4.4-stable patches added patches: f2fs-fix-a-panic-caused-by-null-flush_cmd_control.patch --- ...nic-caused-by-null-flush_cmd_control.patch | 48 +++++++++++++++++++ queue-4.4/series | 1 + 2 files changed, 49 insertions(+) create mode 100644 queue-4.4/f2fs-fix-a-panic-caused-by-null-flush_cmd_control.patch diff --git a/queue-4.4/f2fs-fix-a-panic-caused-by-null-flush_cmd_control.patch b/queue-4.4/f2fs-fix-a-panic-caused-by-null-flush_cmd_control.patch new file mode 100644 index 00000000000..2a76e26736b --- /dev/null +++ b/queue-4.4/f2fs-fix-a-panic-caused-by-null-flush_cmd_control.patch @@ -0,0 +1,48 @@ +From d4fdf8ba0e5808ba9ad6b44337783bd9935e0982 Mon Sep 17 00:00:00 2001 +From: Yunlei He +Date: Thu, 1 Jun 2017 16:43:51 +0800 +Subject: f2fs: fix a panic caused by NULL flush_cmd_control + +From: Yunlei He + +commit d4fdf8ba0e5808ba9ad6b44337783bd9935e0982 upstream. + +Mount fs with option noflush_merge, boot failed for illegal address +fcc in function f2fs_issue_flush: + + if (!test_opt(sbi, FLUSH_MERGE)) { + ret = submit_flush_wait(sbi); + atomic_inc(&fcc->issued_flush); -> Here, fcc illegal + return ret; + } + +Signed-off-by: Yunlei He +Signed-off-by: Jaegeuk Kim +[bwh: Backported to 4.9: adjust context] +Signed-off-by: Greg Kroah-Hartman + +--- + fs/f2fs/segment.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- a/fs/f2fs/segment.c ++++ b/fs/f2fs/segment.c +@@ -398,6 +398,9 @@ int create_flush_cmd_control(struct f2fs + init_waitqueue_head(&fcc->flush_wait_queue); + init_llist_head(&fcc->issue_list); + SM_I(sbi)->cmd_control_info = fcc; ++ if (!test_opt(sbi, FLUSH_MERGE)) ++ return err; ++ + fcc->f2fs_issue_flush = kthread_run(issue_flush_thread, sbi, + "f2fs_flush-%u:%u", MAJOR(dev), MINOR(dev)); + if (IS_ERR(fcc->f2fs_issue_flush)) { +@@ -2316,7 +2319,7 @@ int build_segment_manager(struct f2fs_sb + + INIT_LIST_HEAD(&sm_info->sit_entry_set); + +- if (test_opt(sbi, FLUSH_MERGE) && !f2fs_readonly(sbi->sb)) { ++ if (!f2fs_readonly(sbi->sb)) { + err = create_flush_cmd_control(sbi); + if (err) + return err; diff --git a/queue-4.4/series b/queue-4.4/series index 19c0fe845d2..678815cf94d 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -12,3 +12,4 @@ tracing-fix-memory-leak-in-set_trigger_filter.patch tracing-fix-memory-leak-of-instance-function-hash-filters.patch powerpc-msi-fix-null-pointer-access-in-teardown-code.patch revert-drm-rockchip-allow-driver-to-be-shutdown-on-reboot-kexec.patch +f2fs-fix-a-panic-caused-by-null-flush_cmd_control.patch -- 2.47.3