diff options
author | Zhang Yi <yi.zhang@huawei.com> | 2021-07-16 14:20:21 +0200 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2021-09-05 05:38:18 +0200 |
commit | 4df031ff5876d94b48dd9ee486ba5522382a06b2 (patch) | |
tree | 52c453e2978abff4caf9c5218e68681619867251 /fs/ext4/inline.c | |
parent | jbd2: add sparse annotations for add_transaction_credits() (diff) | |
download | linux-4df031ff5876d94b48dd9ee486ba5522382a06b2.tar.xz linux-4df031ff5876d94b48dd9ee486ba5522382a06b2.zip |
ext4: check and update i_disksize properly
After commit 3da40c7b0898 ("ext4: only call ext4_truncate when size <=
isize"), i_disksize could always be updated to i_size in ext4_setattr(),
and we could sure that i_disksize <= i_size since holding inode lock and
if i_disksize < i_size there are delalloc writes pending in the range
upto i_size. If the end of the current write is <= i_size, there's no
need to touch i_disksize since writeback will push i_disksize upto
i_size eventually. So we can switch to check i_size instead of
i_disksize in ext4_da_write_end() when write to the end of the file.
we also could remove ext4_mark_inode_dirty() together because we defer
inode dirtying to generic_write_end() or ext4_da_write_inline_data_end().
Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Link: https://lore.kernel.org/r/20210716122024.1105856-2-yi.zhang@huawei.com
Diffstat (limited to 'fs/ext4/inline.c')
0 files changed, 0 insertions, 0 deletions