Messages in this thread |  | | Date | Sat, 28 Jan 2023 17:27:39 +0800 | Subject | Re: [PATCH 2/4] f2fs: add sanity check for ipu_policy | From | Chao Yu <> |
| |
On 2023/1/20 21:40, Yangtao Li wrote: > Disallow the value set beyond the range, and disallow to change > the value in lfs mode.
IMO, it's better to merge this patch into 1/4.
> > BTW, convert open code to use BIT().
How about using one patch to change 1 << xx to BIT(xx) for all cases of f2fs rather than one by one?
Thanks,
> > Signed-off-by: Yangtao Li <frank.li@vivo.com> > --- > fs/f2fs/segment.h | 1 + > fs/f2fs/sysfs.c | 11 ++++++++++- > 2 files changed, 11 insertions(+), 1 deletion(-) > > diff --git a/fs/f2fs/segment.h b/fs/f2fs/segment.h > index 0b0eb8f03cba..d73e988566a5 100644 > --- a/fs/f2fs/segment.h > +++ b/fs/f2fs/segment.h > @@ -681,6 +681,7 @@ enum { > F2FS_IPU_ASYNC, > F2FS_IPU_NOCACHE, > F2FS_IPU_HONOR_OPU_WRITE, > + F2FS_IPU_MAX, > }; > > #define F2FS_IPU_POLICY(name) \ > diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c > index bdc761f36310..576e6416ffb9 100644 > --- a/fs/f2fs/sysfs.c > +++ b/fs/f2fs/sysfs.c > @@ -452,7 +452,7 @@ static ssize_t __sbi_store(struct f2fs_attr *a, > if (ret < 0) > return ret; > #ifdef CONFIG_F2FS_FAULT_INJECTION > - if (a->struct_type == FAULT_INFO_TYPE && t >= (1 << FAULT_MAX)) > + if (a->struct_type == FAULT_INFO_TYPE && t >= BIT(FAULT_MAX)) > return -EINVAL; > if (a->struct_type == FAULT_INFO_RATE && t >= UINT_MAX) > return -EINVAL; > @@ -706,6 +706,15 @@ static ssize_t __sbi_store(struct f2fs_attr *a, > return count; > } > > + if (!strcmp(a->attr.name, "ipu_policy")) { > + if (F2FS_OPTION(sbi).fs_mode == FS_MODE_LFS) > + return -EINVAL; > + if (t >= BIT(F2FS_IPU_MAX)) > + return -EINVAL; > + SM_I(sbi)->ipu_policy = (unsigned int)t; > + return count; > + } > + > *ui = (unsigned int)t; > > return count;
|  |