milos-linux/fs/btrfs
Christoph Hellwig 761475268f
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>
2026-01-12 14:01:32 +01:00
..
tests btrfs: tests: do trivial BTRFS_PATH_AUTO_FREE conversions 2025-11-24 22:42:23 +01:00
accessors.c btrfs: fix typos in comments and strings 2025-09-23 08:49:16 +02:00
accessors.h btrfs: headers cleanup to remove unnecessary local includes 2025-11-24 22:34:52 +01:00
acl.c btrfs: apply the AUTO_K(V)FREE macros throughout the code 2025-11-24 22:34:51 +01:00
acl.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
async-thread.c btrfs: use list_first_entry() everywhere 2025-05-15 14:30:47 +02:00
async-thread.h
backref.c btrfs: use bool type for btrfs_path members used as booleans 2025-11-24 22:42:25 +01:00
backref.h btrfs: declare free_ipath() via DEFINE_FREE() 2025-11-24 22:34:51 +01:00
bio.c btrfs: add orig_logical to btrfs_bio for encryption 2025-11-25 01:52:23 +01:00
bio.h btrfs: add orig_logical to btrfs_bio for encryption 2025-11-25 01:52:23 +01:00
block-group.c for-6.19-tag 2025-12-03 20:03:46 -08:00
block-group.h btrfs: use booleans for delalloc arguments and struct find_free_extent_ctl 2025-11-24 22:42:26 +01:00
block-rsv.c btrfs: remove fs_info argument from btrfs_reserve_metadata_bytes() 2025-11-24 21:59:11 +01:00
block-rsv.h btrfs: add block reserve for treelog 2025-05-15 14:30:53 +02:00
btrfs_inode.h btrfs: make read verification handle bs > ps cases without large folios 2025-11-24 22:42:24 +01:00
compression.c ARM: 2025-12-05 17:01:20 -08:00
compression.h for-6.19-tag 2025-12-03 20:03:46 -08:00
ctree.c btrfs: remove redundant level reset in btrfs_del_items() 2025-11-25 01:50:56 +01:00
ctree.h btrfs: use bool type for btrfs_path members used as booleans 2025-11-24 22:42:25 +01:00
defrag.c for-6.19-tag 2025-12-03 20:03:46 -08:00
defrag.h btrfs: pass struct btrfs_inode to btrfs_defrag_file() 2025-03-18 20:35:43 +01:00
delalloc-space.c btrfs: remove fs_info argument from btrfs_reserve_metadata_bytes() 2025-11-24 21:59:11 +01:00
delalloc-space.h btrfs: pass struct btrfs_inode to btrfs_free_reserved_data_space_noquota() 2025-05-15 14:30:52 +02:00
delayed-inode.c btrfs: use test_and_set_bit() in btrfs_delayed_delete_inode_ref() 2025-11-25 01:53:32 +01:00
delayed-inode.h btrfs: fix delayed_node ref_tracker use after free 2025-10-22 09:40:04 +02:00
delayed-ref.c btrfs: remove fs_info argument from btrfs_reserve_metadata_bytes() 2025-11-24 21:59:11 +01:00
delayed-ref.h btrfs: move ref-verify under CONFIG_BTRFS_DEBUG 2025-09-22 10:54:32 +02:00
dev-replace.c btrfs: use bool type for btrfs_path members used as booleans 2025-11-24 22:42:25 +01:00
dev-replace.h btrfs: trivial conversion to return bool instead of int 2025-05-15 14:30:49 +02:00
dir-item.c btrfs: remaining BTRFS_PATH_AUTO_FREE conversions 2025-11-25 01:53:33 +01:00
dir-item.h btrfs: rename inode number parameter passed to btrfs_check_dir_item_collision() 2025-07-22 00:05:00 +02:00
direct-io.c btrfs: use booleans for delalloc arguments and struct find_free_extent_ctl 2025-11-24 22:42:26 +01:00
direct-io.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
discard.c btrfs: use verbose assert at peek_discard_list() 2025-05-15 14:30:55 +02:00
discard.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
disk-io.c btrfs: remove redundant zero/NULL initializations in btrfs_alloc_root() 2025-11-25 01:53:33 +01:00
disk-io.h btrfs: headers cleanup to remove unnecessary local includes 2025-11-24 22:34:52 +01:00
export.c btrfs: avoid potential out-of-bounds in btrfs_encode_fh() 2025-09-26 08:48:30 +02:00
export.h
extent-io-tree.c btrfs: fix typos in comments and strings 2025-09-23 08:49:16 +02:00
extent-io-tree.h btrfs: convert several int parameters to bool 2025-09-22 10:54:32 +02:00
extent-tree.c btrfs: remaining BTRFS_PATH_AUTO_FREE conversions 2025-11-25 01:53:33 +01:00
extent-tree.h btrfs: place all boolean fields together in struct find_free_extent_ctl 2025-11-24 22:42:26 +01:00
extent_io.c for-6.19-tag 2025-12-03 20:03:46 -08:00
extent_io.h btrfs: headers cleanup to remove unnecessary local includes 2025-11-24 22:34:52 +01:00
extent_map.c for-6.18-tag 2025-09-30 08:14:49 -07:00
extent_map.h btrfs: headers cleanup to remove unnecessary local includes 2025-11-24 22:34:52 +01:00
fiemap.c btrfs: fix typos in comments and strings 2025-09-23 08:49:16 +02:00
fiemap.h
file-item.c btrfs: add orig_logical to btrfs_bio for encryption 2025-11-25 01:52:23 +01:00
file-item.h btrfs: introduce btrfs_bio::async_csum 2025-11-24 22:42:21 +01:00
file.c for-6.19-tag 2025-12-03 20:03:46 -08:00
file.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
free-space-cache.c btrfs: use bool type for btrfs_path members used as booleans 2025-11-24 22:42:25 +01:00
free-space-cache.h
free-space-tree.c btrfs: remaining BTRFS_PATH_AUTO_FREE conversions 2025-11-25 01:53:33 +01:00
free-space-tree.h btrfs: add btrfs prefix to free space tree exported functions 2025-07-21 23:58:02 +02:00
fs.c btrfs: enable experimental bs > ps support 2025-09-23 08:49:25 +02:00
fs.h btrfs: move and rename CSUM_FMT definition 2025-11-24 22:42:23 +01:00
inode-item.c btrfs: remaining BTRFS_PATH_AUTO_FREE conversions 2025-11-25 01:53:33 +01:00
inode-item.h btrfs: remove unused parameters from btrfs_lookup_inode_extref() 2025-07-21 23:58:03 +02:00
inode.c fs: refactor ->update_time handling 2026-01-12 14:01:32 +01:00
ioctl.c for-6.19-tag 2025-12-03 20:03:46 -08:00
ioctl.h tree-wide: s/struct fileattr/struct file_kattr/g 2025-07-04 16:14:39 +02:00
Kconfig btrfs: implement ref_tracker for delayed_nodes 2025-09-22 10:54:32 +02:00
locking.c btrfs: fix typos in comments and strings 2025-09-23 08:49:16 +02:00
locking.h btrfs: fix typos in comments and strings 2025-09-23 08:49:16 +02:00
lru_cache.c
lru_cache.h
lzo.c btrfs: add unlikely annotations to branches leading to EUCLEAN 2025-09-23 08:49:26 +02:00
Makefile btrfs: move ref-verify under CONFIG_BTRFS_DEBUG 2025-09-22 10:54:32 +02:00
messages.c btrfs: introduce a new shutdown state 2025-11-24 21:45:03 +01:00
messages.h btrfs: don't generate any code from ASSERT() in release builds 2025-11-24 22:42:22 +01:00
misc.h for-6.19-tag 2025-12-03 20:03:46 -08:00
ordered-data.c for-6.19-tag 2025-12-03 20:03:46 -08:00
ordered-data.h btrfs: introduce a read path dedicated extent lock helper 2025-03-18 20:35:48 +01:00
orphan.c
orphan.h
print-tree.c btrfs: use the key format macros when printing keys 2025-11-24 22:03:02 +01:00
print-tree.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
props.c btrfs: props: switch prop_handler::extract to struct btrfs_inode 2025-03-18 20:35:44 +01:00
props.h btrfs: pass struct btrfs_inode to btrfs_inode_inherit_props() 2025-03-18 20:35:44 +01:00
qgroup.c btrfs: remaining BTRFS_PATH_AUTO_FREE conversions 2025-11-25 01:53:33 +01:00
qgroup.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
raid-stripe-tree.c btrfs: use bool type for btrfs_path members used as booleans 2025-11-24 22:42:25 +01:00
raid-stripe-tree.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
raid56.c btrfs: raid56: remove the "_step" infix 2025-11-25 01:50:19 +01:00
raid56.h btrfs: raid56: introduce a new parameter to locate a sector 2025-11-25 01:46:58 +01:00
ref-verify.c btrfs: ref-verify: fix IS_ERR() vs NULL check in btrfs_build_ref_tree() 2025-10-22 09:40:07 +02:00
ref-verify.h btrfs: move ref-verify under CONFIG_BTRFS_DEBUG 2025-09-22 10:54:32 +02:00
reflink.c btrfs: disable various operations on encrypted inodes 2025-11-25 01:50:56 +01:00
reflink.h
relocation.c btrfs: use bool type for btrfs_path members used as booleans 2025-11-24 22:42:25 +01:00
relocation.h btrfs: don't print relocation messages from auto reclaim 2025-07-22 00:09:22 +02:00
root-tree.c btrfs: use the key format macros when printing keys 2025-11-24 22:03:02 +01:00
root-tree.h
scrub.c btrfs: scrub: always update btrfs_scrub_progress::last_physical 2025-11-24 22:42:26 +01:00
scrub.h btrfs: convert several int parameters to bool 2025-09-22 10:54:32 +02:00
send.c for-6.19-tag 2025-12-03 20:03:46 -08:00
send.h btrfs: pass btrfs_root pointers to send ioctl parameters 2025-03-18 20:35:49 +01:00
space-info.c btrfs: make a few more ASSERTs verbose 2025-11-24 22:42:24 +01:00
space-info.h btrfs: move struct reserve_ticket definition to space-info.c 2025-11-24 22:42:23 +01:00
subpage.c for-6.19-tag 2025-12-03 20:03:46 -08:00
subpage.h btrfs: headers cleanup to remove unnecessary local includes 2025-11-24 22:34:52 +01:00
super.c btrfs: remaining BTRFS_PATH_AUTO_FREE conversions 2025-11-25 01:53:33 +01:00
super.h
sysfs.c btrfs: zoned: show statistics for zoned filesystems 2025-11-24 22:34:52 +01:00
sysfs.h btrfs: remove fs_info argument from btrfs_sysfs_add_space_info_type() 2025-11-24 22:02:30 +01:00
transaction.c btrfs: make a few more ASSERTs verbose 2025-11-24 22:42:24 +01:00
transaction.h btrfs: headers cleanup to remove unnecessary local includes 2025-11-24 22:34:52 +01:00
tree-checker.c btrfs: make a few more ASSERTs verbose 2025-11-24 22:42:24 +01:00
tree-checker.h btrfs: validate system chunk array at btrfs_validate_super() 2025-01-13 14:53:18 +01:00
tree-log.c btrfs: remove unnecessary inode key in btrfs_log_all_parents() 2025-11-25 01:53:33 +01:00
tree-log.h btrfs: reduce arguments to btrfs_del_inode_ref_in_log() 2025-11-25 01:53:33 +01:00
tree-mod-log.c btrfs: reduce size of struct tree_mod_elem 2025-07-22 00:09:20 +02:00
tree-mod-log.h
ulist.c btrfs: use rb_find_add() in ulist_rbtree_insert() 2025-07-21 23:53:25 +02:00
ulist.h
uuid-tree.c btrfs: more trivial BTRFS_PATH_AUTO_FREE conversions 2025-11-24 21:59:11 +01:00
uuid-tree.h
verity.c ARM: 2025-12-05 17:01:20 -08:00
verity.h
volumes.c for-6.19-tag 2025-12-03 20:03:46 -08:00
volumes.h btrfs: replace const_ilog2() with ilog2() 2025-11-24 22:34:52 +01:00
xattr.c btrfs: remaining BTRFS_PATH_AUTO_FREE conversions 2025-11-25 01:53:33 +01:00
xattr.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
zlib.c btrfs: add unlikely annotations to branches leading to EIO 2025-09-23 08:49:26 +02:00
zoned.c for-6.19-tag 2025-12-03 20:03:46 -08:00
zoned.h btrfs: headers cleanup to remove unnecessary local includes 2025-11-24 22:34:52 +01:00
zstd.c btrfs: add unlikely annotations to branches leading to EIO 2025-09-23 08:49:26 +02:00