“34551e5ca79d2aa7fb69dcee27f24dee805ab49f”上不存在“git@gitcode.net:openanolis/dragonwell8_hotspot.git”
提交 247be513 编写于 作者: X Xin Yin 提交者: Zheng Zengkai

ext4: fast commit may miss tracking unwritten range during ftruncate

stable inclusion
from stable-v5.10.94
commit f26b24b4c115f9c8fe8defd2c158420d30b7af0f
bugzilla: https://gitee.com/openeuler/kernel/issues/I531X9

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

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

commit 9725958b upstream.

If use FALLOC_FL_KEEP_SIZE to alloc unwritten range at bottom, the
inode->i_size will not include the unwritten range. When call
ftruncate with fast commit enabled, it will miss to track the
unwritten range.

Change to trace the full range during ftruncate.
Signed-off-by: NXin Yin <yinxin.x@bytedance.com>
Reviewed-by: NHarshad Shirwadkar <harshadshirwadkar@gmail.com>
Link: https://lore.kernel.org/r/20211223032337.5198-3-yinxin.x@bytedance.comSigned-off-by: NTheodore Ts'o <tytso@mit.edu>
Cc: stable@kernel.org
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
Acked-by: NXie XiuQi <xiexiuqi@huawei.com>
上级 37b38b37
...@@ -5433,8 +5433,7 @@ int ext4_setattr(struct dentry *dentry, struct iattr *attr) ...@@ -5433,8 +5433,7 @@ int ext4_setattr(struct dentry *dentry, struct iattr *attr)
ext4_fc_track_range(handle, inode, ext4_fc_track_range(handle, inode,
(attr->ia_size > 0 ? attr->ia_size - 1 : 0) >> (attr->ia_size > 0 ? attr->ia_size - 1 : 0) >>
inode->i_sb->s_blocksize_bits, inode->i_sb->s_blocksize_bits,
(oldsize > 0 ? oldsize - 1 : 0) >> EXT_MAX_BLOCKS - 1);
inode->i_sb->s_blocksize_bits);
else else
ext4_fc_track_range( ext4_fc_track_range(
handle, inode, handle, inode,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册