linux/fs/btrfs
Filipe Manana 912c257c88 btrfs: abort transaction where errors happen during log tree replay
In the replay_one_buffer() log tree walk callback we return errors to the
log tree walk caller and then the caller aborts the transaction, if we
have one, or turns the fs into error state if we don't have one. While
this reduces code it makes it harder to figure out where exactly an error
came from. So add the transaction aborts after every failure inside the
replay_one_buffer() callback and the functions it calls, making it as
fine grained as possible, so that it helps figuring out why failures
happen.

Reviewed-by: Boris Burkov <boris@bur.io>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-09-22 10:54:29 +02:00
..
tests btrfs: remove btrfs_clear_extent_bits() 2025-07-22 00:09:22 +02:00
Kconfig btrfs: enable large data folio support under CONFIG_BTRFS_EXPERIMENTAL 2025-07-21 23:53:30 +02:00
Makefile btrfs: selftests: add delayed ref self test cases 2025-01-13 14:53:13 +01:00
accessors.c btrfs: accessors: rename variable for folio offset 2025-07-22 00:09:21 +02:00
accessors.h btrfs: accessors: delete token versions of set/get helpers 2025-07-22 00:05:00 +02:00
acl.c
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: set search_commit_root to false in iterate_inodes_from_logical() 2025-07-22 00:09:20 +02:00
backref.h btrfs: set search_commit_root to false in iterate_inodes_from_logical() 2025-07-22 00:09:20 +02:00
bio.c btrfs: switch RCU helper versions to btrfs_debug() 2025-07-21 23:56:38 +02:00
bio.h btrfs: pass a physical address to btrfs_repair_io_failure() 2025-05-15 14:30:46 +02:00
block-group.c btrfs: annotate block group access with data_race() when sorting for reclaim 2025-09-15 05:25:43 +02:00
block-group.h btrfs: cache if we are using free space bitmaps for a block group 2025-07-21 23:58:03 +02:00
block-rsv.c btrfs: add block reserve for treelog 2025-05-15 14:30:53 +02:00
block-rsv.h btrfs: add block reserve for treelog 2025-05-15 14:30:53 +02:00
btrfs_inode.h btrfs: fix race between setting last_dir_index_offset and inode logging 2025-08-22 00:58:47 +02:00
compression.c btrfs: reject invalid compression level 2025-09-18 13:18:49 +02:00
compression.h btrfs: reject invalid compression level 2025-09-18 13:18:49 +02:00
ctree.c btrfs: don't use token set/get accessors for btrfs_item members 2025-07-22 00:04:59 +02:00
ctree.h btrfs: split btrfs_is_fstree() into multiple if statements for readability 2025-07-21 23:58:04 +02:00
defrag.c btrfs: defrag: add flag to force no-compression 2025-07-22 01:13:03 +02:00
defrag.h btrfs: pass struct btrfs_inode to btrfs_defrag_file() 2025-03-18 20:35:43 +01:00
delalloc-space.c btrfs: add block reserve for treelog 2025-05-15 14:30:53 +02: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: initialize inode::file_extent_tree after i_mode has been set 2025-09-15 05:25:40 +02:00
delayed-inode.h btrfs: make btrfs_readdir_delayed_dir_index() return a bool instead 2025-07-21 23:53:30 +02:00
delayed-ref.c btrfs: add btrfs prefix to is_fstree() and make it return bool 2025-07-21 23:58:04 +02:00
delayed-ref.h btrfs: constify more pointer parameters 2025-07-21 23:53:26 +02:00
dev-replace.c btrfs: use fs_holder_ops for all opened devices 2025-07-22 00:06:20 +02: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: rename inode number parameter passed to btrfs_check_dir_item_collision() 2025-07-22 00:05:00 +02: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: remove superfluous return value check at btrfs_dio_iomap_begin() 2025-05-15 14:30:57 +02: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 CRC updates for 6.17 2025-07-28 17:43:29 -07:00
disk-io.h btrfs: get rid of btrfs_read_dev_super() 2025-05-15 14:30:50 +02:00
export.c btrfs: make btrfs_iget() return a btrfs inode instead 2025-03-18 20:35:50 +01:00
export.h
extent-io-tree.c btrfs: use our message helpers instead of pr_err/pr_warn/pr_info 2025-07-21 23:58:04 +02:00
extent-io-tree.h btrfs: remove btrfs_clear_extent_bits() 2025-07-22 00:09:22 +02:00
extent-tree.c btrfs: fix ssd_spread overallocation 2025-07-22 01:12:52 +02:00
extent-tree.h btrfs: constify more pointer parameters 2025-07-21 23:53:26 +02:00
extent_io.c btrfs: fix corruption reading compressed range when block size is smaller than page size 2025-09-02 20:45:25 +02:00
extent_io.h btrfs: make extent_buffer_test_bit() return a boolean instead 2025-07-21 23:58:02 +02:00
extent_map.c btrfs: add btrfs prefix to is_fstree() and make it return bool 2025-07-21 23:58:04 +02:00
extent_map.h btrfs: rename remaining exported extent map functions 2025-05-15 14:30:45 +02:00
fiemap.c btrfs: use refcount_t type for the extent buffer reference counter 2025-07-21 23:53:30 +02:00
fiemap.h
file-item.c btrfs: use btrfs_is_data_reloc_root() where not done yet 2025-07-21 23:53:31 +02:00
file-item.h btrfs: change return type of btrfs_alloc_dummy_sum() to int 2025-05-15 14:30:49 +02:00
file.c vfs-6.17-rc1.mmap_prepare 2025-07-28 13:43:25 -07: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 pgoff_t for page index variables 2025-07-21 23:58:05 +02:00
free-space-cache.h
free-space-tree.c btrfs: cache if we are using free space bitmaps for a block group 2025-07-21 23:58:03 +02: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: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
fs.h btrfs: index buffer_tree using node size 2025-07-22 00:09:20 +02:00
inode-item.c btrfs: remove unused parameters from btrfs_lookup_inode_extref() 2025-07-21 23:58:03 +02:00
inode-item.h btrfs: remove unused parameters from btrfs_lookup_inode_extref() 2025-07-21 23:58:03 +02:00
inode.c btrfs: replace double boolean parameters of cow_file_range() 2025-09-22 10:54:29 +02:00
ioctl.c for-6.17/io_uring-20250728 2025-07-28 16:30:12 -07:00
ioctl.h tree-wide: s/struct fileattr/struct file_kattr/g 2025-07-04 16:14:39 +02:00
locking.c btrfs: trivial conversion to return bool instead of int 2025-05-15 14:30:49 +02:00
locking.h btrfs: trivial conversion to return bool instead of int 2025-05-15 14:30:49 +02:00
lru_cache.c
lru_cache.h
lzo.c btrfs: prepare compression paths for large data folios 2025-05-15 14:30:45 +02:00
messages.c
messages.h btrfs: merge btrfs_printk_ratelimited() and its only caller 2025-07-21 23:56:39 +02:00
misc.h btrfs: add helper folio_end() 2025-07-21 23:58:01 +02:00
ordered-data.c btrfs: use folio_end() where appropriate 2025-07-21 23:58:01 +02: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 our message helpers instead of pr_err/pr_warn/pr_info 2025-07-21 23:58:04 +02: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: fix squota compressed stats leak 2025-09-02 20:45:15 +02:00
qgroup.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
raid-stripe-tree.c btrfs: unfold transaction abort at btrfs_insert_one_raid_extent() 2025-07-21 23:53:24 +02: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: use list_last_entry() at cache_rbio() 2025-05-15 14:30:54 +02:00
raid56.h
ref-verify.c btrfs: ref-verify: handle damaged extent root tree 2025-09-18 05:47:34 +02:00
ref-verify.h btrfs: constify more pointer parameters 2025-07-21 23:53:26 +02:00
reflink.c btrfs: remove btrfs_clear_extent_bits() 2025-07-22 00:09:22 +02:00
reflink.h
relocation.c btrfs: do not allow relocation of partially dropped subvolumes 2025-08-07 17:07:15 +02:00
relocation.h btrfs: don't print relocation messages from auto reclaim 2025-07-22 00:09:22 +02:00
root-tree.c btrfs: root-tree: remove unnecessary calls to btrfs_mark_buffer_dirty() 2025-01-13 14:53:20 +01:00
root-tree.h
scrub.c btrfs: switch RCU helper versions to btrfs_warn() 2025-07-21 23:56:38 +02:00
scrub.h
send.c btrfs: send: use fallocate for hole punching with send stream v2 2025-07-22 01:23:14 +02:00
send.h btrfs: pass btrfs_root pointers to send ioctl parameters 2025-03-18 20:35:49 +01:00
space-info.c btrfs: change dump_block_groups() in btrfs_dump_space_info() from int to bool 2025-07-21 23:58:05 +02:00
space-info.h btrfs: change dump_block_groups() in btrfs_dump_space_info() from int to bool 2025-07-21 23:58:05 +02:00
subpage.c btrfs: subpage: keep TOWRITE tag until folio is cleaned 2025-08-13 14:08:45 +02:00
subpage.h btrfs: enable large data folio support under CONFIG_BTRFS_EXPERIMENTAL 2025-07-21 23:53:30 +02:00
super.c for-6.17-rc6-tag 2025-09-20 21:41:26 -07:00
super.h
sysfs.c btrfs: use our message helpers instead of pr_err/pr_warn/pr_info 2025-07-21 23:58:04 +02:00
sysfs.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
transaction.c btrfs: qgroup: fix qgroup create ioctl returning success after quotas disabled 2025-07-22 00:07:30 +02:00
transaction.h btrfs: move abort_should_print_stack() to transaction.h 2025-01-13 14:53:17 +01:00
tree-checker.c btrfs: tree-checker: fix the incorrect inode ref size check 2025-09-18 05:47:25 +02: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: abort transaction where errors happen during log tree replay 2025-09-22 10:54:29 +02:00
tree-log.h
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: uuid-tree: remove unnecessary call to btrfs_mark_buffer_dirty() 2025-01-13 14:53:20 +01:00
uuid-tree.h
verity.c btrfs: pass struct btrfs_inode to btrfs_sync_inode_flags_to_i_flags() 2025-03-18 20:35:49 +01:00
verity.h
volumes.c btrfs: don't allow adding block device of less than 1 MB 2025-09-05 19:52:10 +02:00
volumes.h btrfs: don't print relocation messages from auto reclaim 2025-07-22 00:09:22 +02:00
xattr.c btrfs: replace strcpy() with strscpy() 2025-07-22 00:05:00 +02:00
xattr.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
zlib.c btrfs: prepare compression paths for large data folios 2025-05-15 14:30:45 +02:00
zoned.c btrfs: zoned: fix incorrect ASSERT in btrfs_zoned_reserve_data_reloc_bg() 2025-09-15 05:25:37 +02:00
zoned.h btrfs: zoned: reserve data_reloc block group on mount 2025-07-21 23:56:31 +02:00
zstd.c btrfs: use our message helpers instead of pr_err/pr_warn/pr_info 2025-07-21 23:58:04 +02:00