Commit ba87a45c authored by Wang Xiaojun's avatar Wang Xiaojun Committed by Jaegeuk Kim
Browse files

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: default avatarWang Xiaojun <wangxiaojun11@huawei.com>
Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent da52f8ad
Loading
Loading
Loading
Loading
+18 −18
Original line number Diff line number Diff line
@@ -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 @@ static int f2fs_remount(struct super_block *sb, int *flags, char *data)
#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 @@ static int f2fs_remount(struct super_block *sb, int *flags, char *data)
#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 @@ static int f2fs_fill_super(struct super_block *sb, void *data, int silent)
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);