f2fs: use kfree() to free variables allocated by match_strdup()
Use kfree() instead of kvfree() to free variables allocated by match_strdup(). Because the memory is allocated with kmalloc inside match_strdup(). Signed-off-by: Wang Xiaojun <wangxiaojun11@huawei.com> Reviewed-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
da52f8ade4
commit
ba87a45c23
|
@ -348,7 +348,7 @@ static int f2fs_set_qf_name(struct super_block *sb, int qtype,
|
|||
set_opt(sbi, QUOTA);
|
||||
return 0;
|
||||
errout:
|
||||
kvfree(qname);
|
||||
kfree(qname);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -360,7 +360,7 @@ static int f2fs_clear_qf_name(struct super_block *sb, int qtype)
|
|||
f2fs_err(sbi, "Cannot change journaled quota options when quota turned on");
|
||||
return -EINVAL;
|
||||
}
|
||||
kvfree(F2FS_OPTION(sbi).s_qf_names[qtype]);
|
||||
kfree(F2FS_OPTION(sbi).s_qf_names[qtype]);
|
||||
F2FS_OPTION(sbi).s_qf_names[qtype] = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
@ -494,10 +494,10 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
|
|||
} else if (!strcmp(name, "sync")) {
|
||||
F2FS_OPTION(sbi).bggc_mode = BGGC_MODE_SYNC;
|
||||
} else {
|
||||
kvfree(name);
|
||||
kfree(name);
|
||||
return -EINVAL;
|
||||
}
|
||||
kvfree(name);
|
||||
kfree(name);
|
||||
break;
|
||||
case Opt_disable_roll_forward:
|
||||
set_opt(sbi, DISABLE_ROLL_FORWARD);
|
||||
|
@ -654,17 +654,17 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
|
|||
if (!strcmp(name, "adaptive")) {
|
||||
if (f2fs_sb_has_blkzoned(sbi)) {
|
||||
f2fs_warn(sbi, "adaptive mode is not allowed with zoned block device feature");
|
||||
kvfree(name);
|
||||
kfree(name);
|
||||
return -EINVAL;
|
||||
}
|
||||
F2FS_OPTION(sbi).fs_mode = FS_MODE_ADAPTIVE;
|
||||
} else if (!strcmp(name, "lfs")) {
|
||||
F2FS_OPTION(sbi).fs_mode = FS_MODE_LFS;
|
||||
} else {
|
||||
kvfree(name);
|
||||
kfree(name);
|
||||
return -EINVAL;
|
||||
}
|
||||
kvfree(name);
|
||||
kfree(name);
|
||||
break;
|
||||
case Opt_io_size_bits:
|
||||
if (args->from && match_int(args, &arg))
|
||||
|
@ -790,10 +790,10 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
|
|||
} else if (!strcmp(name, "fs-based")) {
|
||||
F2FS_OPTION(sbi).whint_mode = WHINT_MODE_FS;
|
||||
} else {
|
||||
kvfree(name);
|
||||
kfree(name);
|
||||
return -EINVAL;
|
||||
}
|
||||
kvfree(name);
|
||||
kfree(name);
|
||||
break;
|
||||
case Opt_alloc:
|
||||
name = match_strdup(&args[0]);
|
||||
|
@ -805,10 +805,10 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
|
|||
} else if (!strcmp(name, "reuse")) {
|
||||
F2FS_OPTION(sbi).alloc_mode = ALLOC_MODE_REUSE;
|
||||
} else {
|
||||
kvfree(name);
|
||||
kfree(name);
|
||||
return -EINVAL;
|
||||
}
|
||||
kvfree(name);
|
||||
kfree(name);
|
||||
break;
|
||||
case Opt_fsync:
|
||||
name = match_strdup(&args[0]);
|
||||
|
@ -822,10 +822,10 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
|
|||
F2FS_OPTION(sbi).fsync_mode =
|
||||
FSYNC_MODE_NOBARRIER;
|
||||
} else {
|
||||
kvfree(name);
|
||||
kfree(name);
|
||||
return -EINVAL;
|
||||
}
|
||||
kvfree(name);
|
||||
kfree(name);
|
||||
break;
|
||||
case Opt_test_dummy_encryption:
|
||||
ret = f2fs_set_test_dummy_encryption(sb, p, &args[0],
|
||||
|
@ -1250,7 +1250,7 @@ static void f2fs_put_super(struct super_block *sb)
|
|||
mempool_destroy(sbi->write_io_dummy);
|
||||
#ifdef CONFIG_QUOTA
|
||||
for (i = 0; i < MAXQUOTAS; i++)
|
||||
kvfree(F2FS_OPTION(sbi).s_qf_names[i]);
|
||||
kfree(F2FS_OPTION(sbi).s_qf_names[i]);
|
||||
#endif
|
||||
fscrypt_free_dummy_context(&F2FS_OPTION(sbi).dummy_enc_ctx);
|
||||
destroy_percpu_info(sbi);
|
||||
|
@ -1754,7 +1754,7 @@ static int f2fs_remount(struct super_block *sb, int *flags, char *data)
|
|||
GFP_KERNEL);
|
||||
if (!org_mount_opt.s_qf_names[i]) {
|
||||
for (j = 0; j < i; j++)
|
||||
kvfree(org_mount_opt.s_qf_names[j]);
|
||||
kfree(org_mount_opt.s_qf_names[j]);
|
||||
return -ENOMEM;
|
||||
}
|
||||
} else {
|
||||
|
@ -1879,7 +1879,7 @@ skip:
|
|||
#ifdef CONFIG_QUOTA
|
||||
/* Release old quota file names */
|
||||
for (i = 0; i < MAXQUOTAS; i++)
|
||||
kvfree(org_mount_opt.s_qf_names[i]);
|
||||
kfree(org_mount_opt.s_qf_names[i]);
|
||||
#endif
|
||||
/* Update the POSIXACL Flag */
|
||||
sb->s_flags = (sb->s_flags & ~SB_POSIXACL) |
|
||||
|
@ -1900,7 +1900,7 @@ restore_opts:
|
|||
#ifdef CONFIG_QUOTA
|
||||
F2FS_OPTION(sbi).s_jquota_fmt = org_mount_opt.s_jquota_fmt;
|
||||
for (i = 0; i < MAXQUOTAS; i++) {
|
||||
kvfree(F2FS_OPTION(sbi).s_qf_names[i]);
|
||||
kfree(F2FS_OPTION(sbi).s_qf_names[i]);
|
||||
F2FS_OPTION(sbi).s_qf_names[i] = org_mount_opt.s_qf_names[i];
|
||||
}
|
||||
#endif
|
||||
|
@ -3811,7 +3811,7 @@ free_bio_info:
|
|||
free_options:
|
||||
#ifdef CONFIG_QUOTA
|
||||
for (i = 0; i < MAXQUOTAS; i++)
|
||||
kvfree(F2FS_OPTION(sbi).s_qf_names[i]);
|
||||
kfree(F2FS_OPTION(sbi).s_qf_names[i]);
|
||||
#endif
|
||||
fscrypt_free_dummy_context(&F2FS_OPTION(sbi).dummy_enc_ctx);
|
||||
kvfree(options);
|
||||
|
|
Loading…
Reference in New Issue