f2fs: add default mount options to remount
I use f2fs filesystem with /data partition on my Android phone by the default mount options. When I remount /data in order to adding discard option to run some benchmarks, I find the default options such as background_gc, user_xattr and acl turned off. So I introduce a function named default_options in super.c. It do some default setting, and both mount and remount operations will call this function to complete default setting. Signed-off-by: Yunlei He <heyunlei@huawei.com> Reviewed-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
d690358b2b
commit
498c5e9fcd
|
@ -661,6 +661,22 @@ static const struct file_operations f2fs_seq_segment_info_fops = {
|
||||||
.release = single_release,
|
.release = single_release,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static void default_options(struct f2fs_sb_info *sbi)
|
||||||
|
{
|
||||||
|
/* init some FS parameters */
|
||||||
|
sbi->active_logs = NR_CURSEG_TYPE;
|
||||||
|
|
||||||
|
set_opt(sbi, BG_GC);
|
||||||
|
set_opt(sbi, INLINE_DATA);
|
||||||
|
|
||||||
|
#ifdef CONFIG_F2FS_FS_XATTR
|
||||||
|
set_opt(sbi, XATTR_USER);
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_F2FS_FS_POSIX_ACL
|
||||||
|
set_opt(sbi, POSIX_ACL);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
static int f2fs_remount(struct super_block *sb, int *flags, char *data)
|
static int f2fs_remount(struct super_block *sb, int *flags, char *data)
|
||||||
{
|
{
|
||||||
struct f2fs_sb_info *sbi = F2FS_SB(sb);
|
struct f2fs_sb_info *sbi = F2FS_SB(sb);
|
||||||
|
@ -679,7 +695,7 @@ static int f2fs_remount(struct super_block *sb, int *flags, char *data)
|
||||||
active_logs = sbi->active_logs;
|
active_logs = sbi->active_logs;
|
||||||
|
|
||||||
sbi->mount_opt.opt = 0;
|
sbi->mount_opt.opt = 0;
|
||||||
sbi->active_logs = NR_CURSEG_TYPE;
|
default_options(sbi);
|
||||||
|
|
||||||
/* parse mount options */
|
/* parse mount options */
|
||||||
err = parse_options(sb, data);
|
err = parse_options(sb, data);
|
||||||
|
@ -1021,18 +1037,7 @@ try_onemore:
|
||||||
goto free_sbi;
|
goto free_sbi;
|
||||||
|
|
||||||
sb->s_fs_info = sbi;
|
sb->s_fs_info = sbi;
|
||||||
/* init some FS parameters */
|
default_options(sbi);
|
||||||
sbi->active_logs = NR_CURSEG_TYPE;
|
|
||||||
|
|
||||||
set_opt(sbi, BG_GC);
|
|
||||||
set_opt(sbi, INLINE_DATA);
|
|
||||||
|
|
||||||
#ifdef CONFIG_F2FS_FS_XATTR
|
|
||||||
set_opt(sbi, XATTR_USER);
|
|
||||||
#endif
|
|
||||||
#ifdef CONFIG_F2FS_FS_POSIX_ACL
|
|
||||||
set_opt(sbi, POSIX_ACL);
|
|
||||||
#endif
|
|
||||||
/* parse mount options */
|
/* parse mount options */
|
||||||
options = kstrdup((const char *)data, GFP_KERNEL);
|
options = kstrdup((const char *)data, GFP_KERNEL);
|
||||||
if (data && !options) {
|
if (data && !options) {
|
||||||
|
|
Loading…
Reference in New Issue