staging: erofs: code cleanup for option parsing of fault_injection

Define a dummpy function of erofs_build_fault_attr() when macro
CONFIG_EROFS_FAULT_INJECTION is disabled, so that we don't have to
check the macro in calling place. Based on above adjustment,
do proper code cleanup for option parsing of fault_injection.

Signed-off-by: Chengguang Xu <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Reviewed-by: Gao Xiang <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
This commit is contained in:
Chengguang Xu authored and Greg Kroah-Hartman committed 2018-09-20 12:26:29 +02:00
1 parent 6614f76530
commit 01e4ae4b68
1 file changed
+21 -13
+21 -13
View File
@@ -145,10 +145,14 @@ char *erofs_fault_name[FAULT_MAX] = {
[FAULT_KMALLOC] = "kmalloc",
};
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)
{
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);
@@ -157,6 +161,16 @@ static void erofs_build_fault_attr(struct erofs_sb_info *sbi,
} else {
memset(ffi, 0, sizeof(struct erofs_fault_info));
}
set_opt(sbi, FAULT_INJECTION);
return 0;
}
#else
static int erofs_build_fault_attr(struct erofs_sb_info *sbi,
substring_t *args)
{
infoln("fault_injection options not supported");
return 0;
}
#endif
@@ -198,7 +212,7 @@ static int parse_options(struct super_block *sb, char *options)
{
substring_t args[MAX_OPT_ARGS];
char *p;
int arg = 0;
int err;
if (!options)
return 0;
@@ -243,18 +257,12 @@ static int parse_options(struct super_block *sb, char *options)
infoln("noacl options not supported");
break;
#endif
#ifdef CONFIG_EROFS_FAULT_INJECTION
case Opt_fault_injection:
if (args->from && match_int(args, &arg))
return -EINVAL;
erofs_build_fault_attr(EROFS_SB(sb), arg);
set_opt(EROFS_SB(sb), FAULT_INJECTION);
err = erofs_build_fault_attr(EROFS_SB(sb), args);
if (err)
return err;
break;
#else
case Opt_fault_injection:
infoln("fault_injection options not supported");
break;
#endif
default:
errln("Unrecognized mount option \"%s\" "
"or missing value", p);