Btrfs: add missing inode version, ctime and mtime updates when punching hole
If the range for which we are punching a hole covers only part of a page, we end up updating the inode item but we skip the update of the inode's iversion, mtime and ctime. Fix that by ensuring we update those properties of the inode. A patch for fstests test case generic/059 that tests this as been sent along with this fix. Fixes:2aaa665581
("Btrfs: add hole punching") Fixes:e8c1c76e80
("Btrfs: add missing inode update when punching hole") CC: stable@vger.kernel.org # 4.4+ Signed-off-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
803f0f64d1
commit
179006688a
@ -2711,6 +2711,11 @@ out_only_mutex:
|
||||
* for detecting, at fsync time, if the inode isn't yet in the
|
||||
* log tree or it's there but not up to date.
|
||||
*/
|
||||
struct timespec64 now = current_time(inode);
|
||||
|
||||
inode_inc_iversion(inode);
|
||||
inode->i_mtime = now;
|
||||
inode->i_ctime = now;
|
||||
trans = btrfs_start_transaction(root, 1);
|
||||
if (IS_ERR(trans)) {
|
||||
err = PTR_ERR(trans);
|
||||
|
Loading…
Reference in New Issue
Block a user