2021-02-01 01:01:14

by Daeho Jeong

[permalink] [raw]
Subject: [PATCH] f2fs: prevent setting ioprio of thread not in merge mode

From: Daeho Jeong <[email protected]>

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 <[email protected]>
---
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


2021-02-01 22:37:05

by Jaegeuk Kim

[permalink] [raw]
Subject: Re: [PATCH] f2fs: prevent setting ioprio of thread not in merge mode

Thanks.
Merged into the original patch.

On 02/01, Daeho Jeong wrote:
> From: Daeho Jeong <[email protected]>
>
> 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 <[email protected]>
> ---
> 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