1
0
Fork 0
mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-01-24 09:13:20 -05:00
linux/fs/bcachefs
Kent Overstreet f0c3f88b35 bcachefs: Run insert triggers before overwrite triggers
Currently, btree triggers are run in natural key order, which presents a
problem for fallocate in INSERT_RANGE mode: since we're moving existing
extents to higher offsets, the trigger for deleting the old extent runs
before the trigger that adds the new extent, potentially leading to
indirect extents being deleted that shouldn't be when the delete causes
the refcount to hit 0.

This changes the order we run triggers so that for a givin btree, we run
all insert triggers before overwrite triggers, nicely sidestepping this
issue.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
2023-10-22 17:09:17 -04:00
..
acl.c bcachefs: bch2_assert_pos_locked() 2023-10-22 17:09:16 -04:00
acl.h bcachefs: Plumb through subvolume id 2023-10-22 17:09:12 -04:00
alloc_background.c bcachefs: Add journal_seq to inode & alloc keys 2023-10-22 17:09:16 -04:00
alloc_background.h bcachefs: Add journal_seq to inode & alloc keys 2023-10-22 17:09:16 -04:00
alloc_foreground.c
alloc_foreground.h
alloc_types.h
bcachefs.h bcachefs: Disk space accounting fix on brand-new fs 2023-10-22 17:09:17 -04:00
bcachefs_format.h bcachefs: More enum strings 2023-10-22 17:09:17 -04:00
bcachefs_ioctl.h bcachefs: Subvolumes, snapshots 2023-10-22 17:09:12 -04:00
bkey.c bcachefs: Fix shift-by-64 in bch2_bkey_format_validate() 2023-10-22 17:09:07 -04:00
bkey.h bcachefs: Whiteouts for snapshots 2023-10-22 17:09:12 -04:00
bkey_buf.h
bkey_methods.c bcachefs: Add journal_seq to inode & alloc keys 2023-10-22 17:09:16 -04:00
bkey_methods.h bcachefs: Re-implement extent merging in transaction commit path 2023-10-22 17:09:06 -04:00
bkey_sort.c
bkey_sort.h
bset.c bcachefs: btree_path 2023-10-22 17:09:11 -04:00
bset.h
btree_cache.c bcachefs: Fix infinite loop in bch2_btree_cache_scan() 2023-10-22 17:09:16 -04:00
btree_cache.h bcachefs: btree_path 2023-10-22 17:09:11 -04:00
btree_gc.c bcachefs: BTREE_TRIGGER_INSERT now only means insert 2023-10-22 17:09:15 -04:00
btree_gc.h bcachefs: Split out SPOS_MAX 2023-10-22 17:09:07 -04:00
btree_io.c bcachefs: Fix some compiler warnings 2023-10-22 17:09:12 -04:00
btree_io.h bcachefs: Clean up/rename bch2_trans_node_* fns 2023-10-22 17:09:11 -04:00
btree_iter.c bcachefs: bch2_assert_pos_locked() 2023-10-22 17:09:16 -04:00
btree_iter.h bcachefs: bch2_assert_pos_locked() 2023-10-22 17:09:16 -04:00
btree_key_cache.c bcachefs: BTREE_ITER_FILTER_SNAPSHOTS 2023-10-22 17:09:12 -04:00
btree_key_cache.h bcachefs: btree_path 2023-10-22 17:09:11 -04:00
btree_locking.h Revert "bcachefs: Add more assertions for locking btree iterators out of order" 2023-10-22 17:09:12 -04:00
btree_types.h bcachefs: Run insert triggers before overwrite triggers 2023-10-22 17:09:17 -04:00
btree_update.h bcachefs: bch2_btree_node_rewrite() now returns transaction restarts 2023-10-22 17:09:15 -04:00
btree_update_interior.c bcachefs: bch2_btree_node_rewrite() now returns transaction restarts 2023-10-22 17:09:15 -04:00
btree_update_interior.h bcachefs: Kill retry loop in btree merge path 2023-10-22 17:09:11 -04:00
btree_update_leaf.c bcachefs: Run insert triggers before overwrite triggers 2023-10-22 17:09:17 -04:00
buckets.c bcachefs: Run insert triggers before overwrite triggers 2023-10-22 17:09:17 -04:00
buckets.h bcachefs: Run insert triggers before overwrite triggers 2023-10-22 17:09:17 -04:00
buckets_types.h
chardev.c bcachefs: set disk state should check new_state 2023-10-22 17:09:08 -04:00
chardev.h
checksum.c bcachefs: More enum strings 2023-10-22 17:09:17 -04:00
checksum.h bcachefs: More enum strings 2023-10-22 17:09:17 -04:00
clock.c
clock.h
clock_types.h
compress.c
compress.h
debug.c bcachefs: for_each_btree_node() now returns errors directly 2023-10-22 17:09:14 -04:00
debug.h
dirent.c bcachefs: Update export_operations for snapshots 2023-10-22 17:09:17 -04:00
dirent.h bcachefs: Update export_operations for snapshots 2023-10-22 17:09:17 -04:00
disk_groups.c
disk_groups.h
ec.c bcachefs: More enum strings 2023-10-22 17:09:17 -04:00
ec.h bcachefs: Assorted ec fixes 2023-10-22 17:09:15 -04:00
ec_types.h
error.c bcachefs: Don't ratelimit certain fsck errors 2023-10-22 17:09:07 -04:00
error.h bcachefs: Don't ratelimit certain fsck errors 2023-10-22 17:09:07 -04:00
extent_update.c bcachefs: Fix restart handling in for_each_btree_key() 2023-10-22 17:09:14 -04:00
extent_update.h bcachefs: Reduce iter->trans usage 2023-10-22 17:09:10 -04:00
extents.c bcachefs: More enum strings 2023-10-22 17:09:17 -04:00
extents.h bcachefs: Fix implementation of KEY_TYPE_error 2023-10-22 17:09:13 -04:00
extents_types.h
eytzinger.h
fifo.h
fs-common.c bcachefs: Add BCH_SUBVOLUME_UNLINKED 2023-10-22 17:09:15 -04:00
fs-common.h bcachefs: Add BCH_SUBVOLUME_UNLINKED 2023-10-22 17:09:15 -04:00
fs-io.c bcachefs: Don't check for -ENOSPC in page writeback 2023-10-22 17:09:16 -04:00
fs-io.h bcachefs: fix truncate with ATTR_MODE 2023-10-22 17:09:07 -04:00
fs-ioctl.c bcachefs: Add BCH_SUBVOLUME_UNLINKED 2023-10-22 17:09:15 -04:00
fs-ioctl.h
fs.c bcachefs: Update export_operations for snapshots 2023-10-22 17:09:17 -04:00
fs.h bcachefs: bch2_assert_pos_locked() 2023-10-22 17:09:16 -04:00
fsck.c bcachefs: Add journal_seq to inode & alloc keys 2023-10-22 17:09:16 -04:00
fsck.h
inode.c bcachefs: Fix missing field initialization 2023-10-22 17:09:17 -04:00
inode.h bcachefs: bch2_assert_pos_locked() 2023-10-22 17:09:16 -04:00
io.c bcachefs: More enum strings 2023-10-22 17:09:17 -04:00
io.h bcachefs: Switch fsync to use bi_journal_seq 2023-10-22 17:09:16 -04:00
io_types.h bcachefs: Convert io paths for snapshots 2023-10-22 17:09:12 -04:00
journal.c bcachefs: Convert journal BUG_ON() to a warning 2023-10-22 17:09:17 -04:00
journal.h bcachefs: Kill journal buf bloom filter 2023-10-22 17:09:16 -04:00
journal_io.c bcachefs: Ensure journal doesn't get stuck in nochanges mode 2023-10-22 17:09:15 -04:00
journal_io.h
journal_reclaim.c bcachefs: Ensure journal doesn't get stuck in nochanges mode 2023-10-22 17:09:15 -04:00
journal_reclaim.h bcachefs: Make sure to initialize j->last_flushed 2023-10-22 17:09:02 -04:00
journal_seq_blacklist.c bcachefs: Handle transaction restarts in bch2_blacklist_entries_gc() 2023-10-22 17:09:14 -04:00
journal_seq_blacklist.h
journal_types.h bcachefs: Kill journal buf bloom filter 2023-10-22 17:09:16 -04:00
Kconfig bcachefs: add bcachefs xxhash support 2023-10-22 17:09:07 -04:00
keylist.c
keylist.h
keylist_types.h
Makefile bcachefs: Subvolumes, snapshots 2023-10-22 17:09:12 -04:00
migrate.c bcachefs: Handle transaction restarts in bch2_blacklist_entries_gc() 2023-10-22 17:09:14 -04:00
migrate.h
move.c bcachefs: Add journal_seq to inode & alloc keys 2023-10-22 17:09:16 -04:00
move.h bcachefs: add progress stats to sysfs 2023-10-22 17:09:10 -04:00
move_types.h bcachefs: add progress stats to sysfs 2023-10-22 17:09:10 -04:00
movinggc.c bcachefs: add progress stats to sysfs 2023-10-22 17:09:10 -04:00
movinggc.h
opts.c bcachefs: More enum strings 2023-10-22 17:09:17 -04:00
opts.h bcachefs: More enum strings 2023-10-22 17:09:17 -04:00
quota.c bcachefs: Add journal_seq to inode & alloc keys 2023-10-22 17:09:16 -04:00
quota.h
quota_types.h
rebalance.c bcachefs: add progress stats to sysfs 2023-10-22 17:09:10 -04:00
rebalance.h
rebalance_types.h bcachefs: add progress stats to sysfs 2023-10-22 17:09:10 -04:00
recovery.c bcachefs: Also log device name in userspace 2023-10-22 17:09:17 -04:00
recovery.h bcachefs: Convert bch2_mark_key() to take a btree_trans * 2023-10-22 17:09:15 -04:00
reflink.c bcachefs: Improve bch2_reflink_p_to_text() 2023-10-22 17:09:17 -04:00
reflink.h bcachefs: Switch fsync to use bi_journal_seq 2023-10-22 17:09:16 -04:00
replicas.c bcachefs: cached data shouldn't prevent fs from mounting 2023-10-22 17:09:14 -04:00
replicas.h
replicas_types.h
siphash.c
siphash.h
six.c
six.h
str_hash.h bcachefs: More enum strings 2023-10-22 17:09:17 -04:00
subvolume.c bcachefs: Convert bch2_mark_key() to take a btree_trans * 2023-10-22 17:09:15 -04:00
subvolume.h bcachefs: Convert bch2_mark_key() to take a btree_trans * 2023-10-22 17:09:15 -04:00
subvolume_types.h bcachefs: Add BCH_SUBVOLUME_UNLINKED 2023-10-22 17:09:15 -04:00
super-io.c bcachefs: Disk space accounting fix on brand-new fs 2023-10-22 17:09:17 -04:00
super-io.h
super.c bcachefs: Clean up error reporting in the startup path 2023-10-22 17:09:16 -04:00
super.h bcachefs: Fix some refcounting bugs 2023-10-22 17:09:03 -04:00
super_types.h
sysfs.c bcachefs: Kill bucket quantiles sysfs code 2023-10-22 17:09:16 -04:00
sysfs.h
tests.c bcachefs: Fix unit & perf tests for snapshots 2023-10-22 17:09:12 -04:00
tests.h
trace.c
trace.h bcachefs: Better approach to write vs. read lock deadlocks 2023-10-22 17:09:12 -04:00
util.c bcachefs: Fix a pcpu var splat 2023-10-22 17:09:13 -04:00
util.h bcachefs: Keep a sorted list of btree iterators 2023-10-22 17:09:10 -04:00
varint.c bcachefs: Add a valgrind memcheck hint 2023-10-22 17:09:13 -04:00
varint.h bcachefs: Add safe versions of varint encode/decode 2023-10-22 17:09:08 -04:00
vstructs.h
xattr.c bcachefs: Switch fsync to use bi_journal_seq 2023-10-22 17:09:16 -04:00
xattr.h bcachefs: Plumb through subvolume id 2023-10-22 17:09:12 -04:00