From: Daeho Jeong <daehoje...@google.com>

It causes a crash to change the ioprio of checkpoint thread not in
checkpoint=merge. I fixed that to prevent setting the ioprio of the
thread when checkpoint=merge is not enabled.

Signed-off-by: Daeho Jeong <daehoje...@google.com>
---
 fs/f2fs/sysfs.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c
index 100608bcd517..e38a7f6921dd 100644
--- a/fs/f2fs/sysfs.c
+++ b/fs/f2fs/sysfs.c
@@ -357,8 +357,12 @@ static ssize_t __sbi_store(struct f2fs_attr *a,
                        return -EINVAL;
 
                cprc->ckpt_thread_ioprio = IOPRIO_PRIO_VALUE(class, data);
-               ret = set_task_ioprio(cprc->f2fs_issue_ckpt,
-                               cprc->ckpt_thread_ioprio);
+               if (test_opt(sbi, MERGE_CHECKPOINT)) {
+                       ret = set_task_ioprio(cprc->f2fs_issue_ckpt,
+                                       cprc->ckpt_thread_ioprio);
+                       if (ret)
+                               return ret;
+               }
 
                return count;
        }
-- 
2.30.0.365.g02bc693789-goog

Reply via email to