Skip to content

Commit

Permalink
Revert "f2fs: don't reset unchangable mount option in f2fs_remount()"
Browse files Browse the repository at this point in the history
This reverts commit e2fb24c which is
commit 458c15d upstream.

Something is currently broken in the f2fs code, Guenter has reported
boot problems with it for a few releases now, so revert the most recent
f2fs changes in the hope to get this back to a working filesystem.

Reported-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/b392e1a8-b987-4993-bd45-035db9415a6e@roeck-us.net
Cc: Chao Yu <chao@kernel.org>
Cc: Jaegeuk Kim <jaegeuk@kernel.org>
Cc: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
gregkh committed Aug 27, 2023
1 parent 77c5766 commit 76e18e6
Showing 1 changed file with 12 additions and 18 deletions.
30 changes: 12 additions & 18 deletions fs/f2fs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -2040,22 +2040,9 @@ static int f2fs_show_options(struct seq_file *seq, struct dentry *root)
return 0;
}

static void default_options(struct f2fs_sb_info *sbi, bool remount)
static void default_options(struct f2fs_sb_info *sbi)
{
/* init some FS parameters */
if (!remount) {
set_opt(sbi, READ_EXTENT_CACHE);
clear_opt(sbi, DISABLE_CHECKPOINT);

if (f2fs_hw_support_discard(sbi) || f2fs_hw_should_discard(sbi))
set_opt(sbi, DISCARD);

if (f2fs_sb_has_blkzoned(sbi))
F2FS_OPTION(sbi).discard_unit = DISCARD_UNIT_SECTION;
else
F2FS_OPTION(sbi).discard_unit = DISCARD_UNIT_BLOCK;
}

if (f2fs_sb_has_readonly(sbi))
F2FS_OPTION(sbi).active_logs = NR_CURSEG_RO_TYPE;
else
Expand All @@ -2078,16 +2065,23 @@ static void default_options(struct f2fs_sb_info *sbi, bool remount)
set_opt(sbi, INLINE_XATTR);
set_opt(sbi, INLINE_DATA);
set_opt(sbi, INLINE_DENTRY);
set_opt(sbi, READ_EXTENT_CACHE);
set_opt(sbi, NOHEAP);
clear_opt(sbi, DISABLE_CHECKPOINT);
set_opt(sbi, MERGE_CHECKPOINT);
F2FS_OPTION(sbi).unusable_cap = 0;
sbi->sb->s_flags |= SB_LAZYTIME;
if (!f2fs_sb_has_readonly(sbi) && !f2fs_readonly(sbi->sb))
set_opt(sbi, FLUSH_MERGE);
if (f2fs_sb_has_blkzoned(sbi))
if (f2fs_hw_support_discard(sbi) || f2fs_hw_should_discard(sbi))
set_opt(sbi, DISCARD);
if (f2fs_sb_has_blkzoned(sbi)) {
F2FS_OPTION(sbi).fs_mode = FS_MODE_LFS;
else
F2FS_OPTION(sbi).discard_unit = DISCARD_UNIT_SECTION;
} else {
F2FS_OPTION(sbi).fs_mode = FS_MODE_ADAPTIVE;
F2FS_OPTION(sbi).discard_unit = DISCARD_UNIT_BLOCK;
}

#ifdef CONFIG_F2FS_FS_XATTR
set_opt(sbi, XATTR_USER);
Expand Down Expand Up @@ -2259,7 +2253,7 @@ static int f2fs_remount(struct super_block *sb, int *flags, char *data)
clear_sbi_flag(sbi, SBI_NEED_SB_WRITE);
}

default_options(sbi, true);
default_options(sbi);

/* parse mount options */
err = parse_options(sb, data, true);
Expand Down Expand Up @@ -4156,7 +4150,7 @@ static int f2fs_fill_super(struct super_block *sb, void *data, int silent)
sbi->s_chksum_seed = f2fs_chksum(sbi, ~0, raw_super->uuid,
sizeof(raw_super->uuid));

default_options(sbi, false);
default_options(sbi);
/* parse mount options */
options = kstrdup((const char *)data, GFP_KERNEL);
if (data && !options) {
Expand Down

0 comments on commit 76e18e6

Please sign in to comment.