Hi Chengguang, On 2018/9/19 0:58, Gao Xiang wrote: > Hi Chengguang, > > On 2018/9/18 23:10, Chengguang Xu wrote: >> Add option validation in remount. After this patch, remount >> can change recognized options, and for unknown options remount >> will fail and report error. >> >> Signed-off-by: Chengguang Xu <cgxu519@xxxxxxx> >> Reviewed-by: Chao Yu <yuchao0@xxxxxxxxxx> >> --- >> drivers/staging/erofs/super.c | 38 ++++++++++++++++++++++++++++------- >> 1 file changed, 31 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/staging/erofs/super.c b/drivers/staging/erofs/super.c >> index a091b93190e1..30b6b44dc6c4 100644 >> --- a/drivers/staging/erofs/super.c >> +++ b/drivers/staging/erofs/super.c >> @@ -145,14 +145,10 @@ char *erofs_fault_name[FAULT_MAX] = { >> [FAULT_KMALLOC] = "kmalloc", >> }; >> >> -static int erofs_build_fault_attr(struct erofs_sb_info *sbi, >> - substring_t *args) >> +static void __erofs_build_fault_attr(struct erofs_sb_info *sbi, >> + unsigned int rate) >> { >> struct erofs_fault_info *ffi = &sbi->fault_info; >> - int rate = 0; >> - >> - if (args->from && match_int(args, &rate)) >> - return -EINVAL; >> >> if (rate) { >> atomic_set(&ffi->inject_ops, 0); >> @@ -163,14 +159,29 @@ static int erofs_build_fault_attr(struct erofs_sb_info *sbi, >> } >> >> set_opt(sbi, FAULT_INJECTION); >> - return 0; >> } >> >> static unsigned int erofs_get_fault_rate(struct erofs_sb_info *sbi) >> { >> return sbi->fault_info.inject_rate; >> } >> + >> +static int erofs_build_fault_attr(struct erofs_sb_info *sbi, substring_t *args) >> +{ >> + int rate = 0; >> + >> + if (args->from && match_int(args, &rate)) >> + return -EINVAL; >> + >> + __erofs_build_fault_attr(sbi, rate); >> + return 0; >> +} >> #else >> +static void __erofs_build_fault_attr(struct erofs_sb_info *sbi, >> + unsigned int rate) >> +{ >> +} >> + >> static int erofs_build_fault_attr(struct erofs_sb_info *sbi, >> substring_t *args) >> { >> @@ -644,10 +655,23 @@ static int erofs_show_options(struct seq_file *seq, struct dentry *root) >> >> static int erofs_remount(struct super_block *sb, int *flags, char *data) >> { >> + struct erofs_sb_info *sbi = EROFS_SB(sb); >> + unsigned int org_mnt_opt = sbi->mount_opt; >> + unsigned int org_inject_rate = erofs_get_fault_rate(sbi); >> + int err; >> + >> BUG_ON(!sb_rdonly(sb)); >> + err = parse_options(sb, data); >> + if (err) >> + goto out; >> >> *flags |= MS_RDONLY; > I cannot apply this patch since the above line has been changed in > 5f0abea6ab6d("staging: erofs: rename superblock flags (MS_xyz -> SB_xyz)"). > > > And two more checkpatch CHECKs as [PATCH v3 2/4] > > CHECK: Alignment should match open parenthesis > #141: FILE: drivers/staging/erofs/super.c:149: > +static void __erofs_build_fault_attr(struct erofs_sb_info *sbi, > + unsigned int rate) > > CHECK: Alignment should match open parenthesis > #175: FILE: drivers/staging/erofs/super.c:181: > +static void __erofs_build_fault_attr(struct erofs_sb_info *sbi, > + unsigned int rate) > > And I think I need to test the basic erofs remount function tomorrow > before merging... it is too late and I have to go to sleep now. I tested just now, and seems good. :) Reviewed-by: Gao Xiang <gaoxiang25@xxxxxxxxxx> and look forward to your final patchset. Thanks, Gao Xiang _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel