]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ext4: don't explicit update times in ext4_fallocate()
authorZhang Yi <yi.zhang@huawei.com>
Thu, 24 Jul 2025 02:57:08 +0000 (22:57 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 1 Aug 2025 08:48:45 +0000 (09:48 +0100)
[ Upstream commit 73ae756ecdfa9684446134590eef32b0f067249c ]

After commit 'ad5cd4f4ee4d ("ext4: fix fallocate to use file_modified to
update permissions consistently"), we can update mtime and ctime
appropriately through file_modified() when doing zero range, collapse
rage, insert range and punch hole, hence there is no need to explicit
update times in those paths, just drop them.

Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Ojaswin Mujoo <ojaswin@linux.ibm.com>
Link: https://patch.msgid.link/20241220011637.1157197-3-yi.zhang@huaweicloud.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Stable-dep-of: 29ec9bed2395 ("ext4: fix incorrect punch max_end")
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/ext4/extents.c
fs/ext4/inode.c

index b16d72275e105497b549c65e995b000a55f62543..43da9906b92404a0fee252b68cc1da5b3b55e7b9 100644 (file)
@@ -4675,8 +4675,6 @@ static long ext4_zero_range(struct file *file, loff_t offset,
                        goto out_mutex;
                }
 
-               inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode));
-
                ret = ext4_alloc_file_blocks(file, lblk, max_blocks, new_size,
                                             flags);
                filemap_invalidate_unlock(mapping);
@@ -4700,7 +4698,6 @@ static long ext4_zero_range(struct file *file, loff_t offset,
                goto out_mutex;
        }
 
-       inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode));
        if (new_size)
                ext4_update_inode_size(inode, new_size);
        ret = ext4_mark_inode_dirty(handle, inode);
@@ -5431,7 +5428,6 @@ static int ext4_collapse_range(struct file *file, loff_t offset, loff_t len)
        up_write(&EXT4_I(inode)->i_data_sem);
        if (IS_SYNC(inode))
                ext4_handle_sync(handle);
-       inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode));
        ret = ext4_mark_inode_dirty(handle, inode);
        ext4_update_inode_fsync_trans(handle, inode, 1);
 
@@ -5541,7 +5537,6 @@ static int ext4_insert_range(struct file *file, loff_t offset, loff_t len)
        /* Expand file to avoid data loss if there is error while shifting */
        inode->i_size += len;
        EXT4_I(inode)->i_disksize += len;
-       inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode));
        ret = ext4_mark_inode_dirty(handle, inode);
        if (ret)
                goto out_stop;
index f769f5cb6deb7806530bc1a5ac4baf7718637aee..e4b6ab28d7055015588ee23ec9d80677da2455f9 100644 (file)
@@ -4113,7 +4113,6 @@ int ext4_punch_hole(struct file *file, loff_t offset, loff_t length)
        if (IS_SYNC(inode))
                ext4_handle_sync(handle);
 
-       inode_set_mtime_to_ts(inode, inode_set_ctime_current(inode));
        ret2 = ext4_mark_inode_dirty(handle, inode);
        if (unlikely(ret2))
                ret = ret2;