]> git.ipfire.org Git - thirdparty/linux.git/commit
fs: refactor ->update_time handling
authorChristoph Hellwig <hch@lst.de>
Thu, 8 Jan 2026 14:19:05 +0000 (15:19 +0100)
committerChristian Brauner <brauner@kernel.org>
Mon, 12 Jan 2026 13:01:32 +0000 (14:01 +0100)
commit761475268fa8e322fe6b80bcf557dc65517df71e
tree5dbbc9ed2ead8ea6e155b752de12129e58e8e162
parent1cbc822816758b2678e94800ce8eecc7b706fb84
fs: refactor ->update_time handling

Pass the type of update (atime vs c/mtime plus version) as an enum
instead of a set of flags that caused all kinds of confusion.
Because inode_update_timestamps now can't return a modified version
of those flags, return the I_DIRTY_* flags needed to persist the
update, which is what the main caller in generic_update_time wants
anyway, and which is suitable for the other callers that only want
to know if an update happened.

The whole update_time path keeps the flags argument, which will be used
to support non-blocking updates soon even if it is unused, and (the
slightly renamed) inode_update_time also gains the possibility to return
a negative errno to support this.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://patch.msgid.link/20260108141934.2052404-6-hch@lst.de
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
17 files changed:
Documentation/filesystems/locking.rst
Documentation/filesystems/vfs.rst
fs/bad_inode.c
fs/btrfs/inode.c
fs/fat/fat.h
fs/fat/misc.c
fs/gfs2/inode.c
fs/inode.c
fs/nfs/inode.c
fs/orangefs/inode.c
fs/orangefs/orangefs-kernel.h
fs/overlayfs/inode.c
fs/overlayfs/overlayfs.h
fs/ubifs/file.c
fs/ubifs/ubifs.h
fs/xfs/xfs_iops.c
include/linux/fs.h