| From: Hugh Dickins <hughd@google.com> |
| Subject: mm/shmem: tmpfs fallocate use file_modified() |
| Date: Wed, 10 Aug 2022 21:55:36 -0700 (PDT) |
| |
| 5.18 fixed the btrfs and ext4 fallocates to use file_modified(), as xfs |
| was already doing, to drop privileges: and fstests generic/{683,684,688} |
| expect this. There's no need to argue over keep-size allocation (which |
| could just update ctime): fix shmem_fallocate() to behave the same way. |
| |
| Link: https://lkml.kernel.org/r/39c5e62-4896-7795-c0a0-f79c50d4909@google.com |
| Signed-off-by: Hugh Dickins <hughd@google.com> |
| Acked-by: Christian Brauner (Microsoft) <brauner@kernel.org> |
| Cc: "Darrick J. Wong" <djwong@kernel.org> |
| Cc: Matthew Wilcox (Oracle) <willy@infradead.org> |
| Cc: Radoslaw Burny <rburny@google.com> |
| Cc: "Theodore Ts'o" <tytso@mit.edu> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| mm/shmem.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/mm/shmem.c~mm-shmem-tmpfs-fallocate-use-file_modified |
| +++ a/mm/shmem.c |
| @@ -2839,12 +2839,13 @@ static long shmem_fallocate(struct file |
| |
| if (!(mode & FALLOC_FL_KEEP_SIZE) && offset + len > inode->i_size) |
| i_size_write(inode, offset + len); |
| - inode->i_ctime = current_time(inode); |
| undone: |
| spin_lock(&inode->i_lock); |
| inode->i_private = NULL; |
| spin_unlock(&inode->i_lock); |
| out: |
| + if (!error) |
| + file_modified(file); |
| inode_unlock(inode); |
| return error; |
| } |
| _ |