ext4: fast commit may miss tracking unwritten range during ftruncate
authorXin Yin <yinxin.x@bytedance.com>
Thu, 23 Dec 2021 03:23:37 +0000 (11:23 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jan 2022 11:02:49 +0000 (12:02 +0100)
commite475b3350c973e8aea45caa7ca7c8a6369a86383
tree0d464c6c8b091526f93ffe89a182dae73c712693
parente92682c0c4881717d8e96c2363398e0d41b49866
ext4: fast commit may miss tracking unwritten range during ftruncate

commit 9725958bb75cdfa10f2ec11526fdb23e7485e8e4 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: Xin Yin <yinxin.x@bytedance.com>
Reviewed-by: Harshad Shirwadkar <harshadshirwadkar@gmail.com>
Link: https://lore.kernel.org/r/20211223032337.5198-3-yinxin.x@bytedance.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/ext4/inode.c