]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
xfs: fallocate() should call file_modified()
authorDave Chinner <dchinner@redhat.com>
Sat, 18 Mar 2023 10:15:19 +0000 (12:15 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Mar 2023 12:30:06 +0000 (13:30 +0100)
commit308dfe49eb753d7263fa4e001251d733c710ed14
tree5c44e2c9bb591c72587c43b495e9a8a0a64a2b83
parent35f049abbae3954fe2c3d57d62fe6624d9b29df6
xfs: fallocate() should call file_modified()

commit fbe7e520036583a783b13ff9744e35c2a329d9a4 upstream.

In XFS, we always update the inode change and modification time when
any fallocate() operation succeeds.  Furthermore, as various
fallocate modes can change the file contents (extending EOF,
punching holes, zeroing things, shifting extents), we should drop
file privileges like suid just like we do for a regular write().
There's already a VFS helper that figures all this out for us, so
use that.

The net effect of this is that we no longer drop suid/sgid if the
caller is root, but we also now drop file capabilities.

We also move the xfs_update_prealloc_flags() function so that it now
is only called by the scope that needs to set the the prealloc flag.

Based on a patch from Darrick Wong.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/xfs/xfs_file.c