Commit 24b633d8 authored by Yunlei He's avatar Yunlei He Committed by Yifan Qiao
Browse files

f2fs: remove clear SB_INLINECRYPT flag in default_options

stable inclusion
from stable-v5.10.221
commit 38a82c8d00638bb642bef787eb1d5e0e4d3b7d71
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IACZZP
CVE: CVE-2024-40971

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=38a82c8d00638bb642bef787eb1d5e0e4d3b7d71



--------------------------------

[ Upstream commit ac5eecf481c29942eb9a862e758c0c8b68090c33 ]

In f2fs_remount, SB_INLINECRYPT flag will be clear and re-set.
If create new file or open file during this gap, these files
will not use inlinecrypt. Worse case, it may lead to data
corruption if wrappedkey_v0 is enable.

Thread A:                               Thread B:

-f2fs_remount				-f2fs_file_open or f2fs_new_inode
  -default_options
	<- clear SB_INLINECRYPT flag

                                          -fscrypt_select_encryption_impl

  -parse_options
	<- set SB_INLINECRYPT again

Signed-off-by: default avatarYunlei He <heyunlei@oppo.com>
Reviewed-by: default avatarChao Yu <chao@kernel.org>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Conflicts:
	fs/f2fs/super.c
[Context differences]
Signed-off-by: default avatarYifan Qiao <qiaoyifan4@huawei.com>
parent 22835887
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -1713,8 +1713,6 @@ static void default_options(struct f2fs_sb_info *sbi)
	F2FS_OPTION(sbi).compress_ext_cnt = 0;
	F2FS_OPTION(sbi).bggc_mode = BGGC_MODE_ON;

	sbi->sb->s_flags &= ~SB_INLINECRYPT;

	set_opt(sbi, INLINE_XATTR);
	set_opt(sbi, INLINE_DATA);
	set_opt(sbi, INLINE_DENTRY);