ext4: don't explicit update times in ext4_fallocate()
authorZhang Yi <yi.zhang@huawei.com>
Fri, 20 Dec 2024 01:16:29 +0000 (09:16 +0800)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 10 Feb 2025 12:48:24 +0000 (07:48 -0500)
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>
fs/ext4/extents.c
fs/ext4/inode.c

index 8dc6b4271b15d7b3f05869ea21deccc4ca596b5b..7fb38aab241d61edd5620bd9e8c7246a9fc2a4e6 100644 (file)
@@ -4674,8 +4674,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);
@@ -4699,7 +4697,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);
@@ -5435,7 +5432,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);
 
@@ -5545,7 +5541,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 a569b66103a35a87023cedece311cdd62fe2a828..cda60d82cbb871dcc9738965702d1726dfdb2f28 100644 (file)
@@ -4139,7 +4139,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;