mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
Btrfs: add missing inode version, ctime and mtime updates when punching hole
commit179006688aupstream. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
@@ -2646,6 +2646,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 timespec 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);
|
||||
|
||||
Reference in New Issue
Block a user