linux-stable/fs/bcachefs
Kent Overstreet 006d69aa26 bcachefs: Don't drop ptrs to btree nodes
If a ptr gen doesn't match the bucket gen, the bucket likely doesn't
contain the data we want - but it's still possible the data we want
might have been overwritten, and for btree node pointers we can verify
whether or not the node is the one we wanted with the node's sequence
number, so it's better to keep the pointer and try reading from it.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2023-10-22 17:08:54 -04:00
..
acl.c bcachefs: Split out btree_trigger_flags 2023-10-22 17:08:33 -04:00
acl.h
alloc_background.c bcachefs: Add a cond_seched() to the allocator thread 2023-10-22 17:08:54 -04:00
alloc_background.h bcachefs: KEY_TYPE_alloc_v2 2023-10-22 17:08:52 -04:00
alloc_foreground.c bcachefs: Refactor dev usage 2023-10-22 17:08:52 -04:00
alloc_foreground.h bcachefs: Don't let copygc buckets be stolen by other threads 2023-10-22 17:08:43 -04:00
alloc_types.h bcachefs: Persist 64 bit io clocks 2023-10-22 17:08:52 -04:00
bcachefs.h bcachefs: Fixes/improvements for journal entry reservations 2023-10-22 17:08:52 -04:00
bcachefs_format.h bcachefs: Use x-macros for compat feature bits 2023-10-22 17:08:54 -04:00
bcachefs_ioctl.h bcachefs: Add code to scan for/rewite old btree nodes 2023-10-22 17:08:54 -04:00
bkey.c bcachefs: Fix bkey format generation for 32 bit fields 2023-10-22 17:08:54 -04:00
bkey.h bcachefs: KEY_TYPE_alloc_v2 2023-10-22 17:08:52 -04:00
bkey_buf.h bcachefs: Reduce/kill BKEY_PADDED use 2023-10-22 17:08:50 -04:00
bkey_methods.c bcachefs: Be more careful in bch2_bkey_to_text() 2023-10-22 17:08:47 -04:00
bkey_methods.h bcachefs: Kill bkey_type_successor 2023-10-22 17:08:37 -04:00
bkey_sort.c bcachefs: Reduce/kill BKEY_PADDED use 2023-10-22 17:08:50 -04:00
bkey_sort.h bcachefs: Kill btree_node_iter_large 2023-10-22 17:08:32 -04:00
bset.c bcachefs: Inline make_bfloat() into __build_ro_aux_tree() 2023-10-22 17:08:46 -04:00
bset.h bcachefs: Drop typechecking from bkey_cmp_packed() 2023-10-22 17:08:46 -04:00
btree_cache.c bcachefs: Fix for bch2_btree_node_get_noiter() returning -ENOMEM 2023-10-22 17:08:53 -04:00
btree_cache.h bcachefs: Add (partial) support for fixing btree topology 2023-10-22 17:08:52 -04:00
btree_gc.c bcachefs: Don't drop ptrs to btree nodes 2023-10-22 17:08:54 -04:00
btree_gc.h bcachefs: Bring back metadata only gc 2023-10-22 17:08:54 -04:00
btree_io.c bcachefs: Don't drop ptrs to btree nodes 2023-10-22 17:08:54 -04:00
btree_io.h bcachefs: Include device in btree IO error messages 2023-10-22 17:08:52 -04:00
btree_iter.c bcachefs: Extents may now cross btree node boundaries 2023-10-22 17:08:53 -04:00
btree_iter.h bcachefs: Kill bch2_btree_iter_set_pos_same_leaf() 2023-10-22 17:08:53 -04:00
btree_key_cache.c bcachefs: Don't use BTREE_INSERT_USE_RESERVE so much 2023-10-22 17:08:50 -04:00
btree_key_cache.h bcachefs: Fix for spinning in journal reclaim on startup 2023-10-22 17:08:50 -04:00
btree_locking.h bcachefs: Improve tracing for transaction restarts 2023-10-22 17:08:45 -04:00
btree_types.h bcachefs: Add code to scan for/rewite old btree nodes 2023-10-22 17:08:54 -04:00
btree_update.h bcachefs: Don't use BTREE_INSERT_USE_RESERVE so much 2023-10-22 17:08:50 -04:00
btree_update_interior.c bcachefs: Add code to scan for/rewite old btree nodes 2023-10-22 17:08:54 -04:00
btree_update_interior.h bcachefs: Delete dead code 2023-10-22 17:08:48 -04:00
btree_update_leaf.c bcachefs: Don't call into journal reclaim when we're not supposed to 2023-10-22 17:08:53 -04:00
buckets.c bcachefs: Extents may now cross btree node boundaries 2023-10-22 17:08:53 -04:00
buckets.h bcachefs: Journal updates to dev usage 2023-10-22 17:08:52 -04:00
buckets_types.h bcachefs: Persist 64 bit io clocks 2023-10-22 17:08:52 -04:00
chardev.c bcachefs: Refactor dev usage 2023-10-22 17:08:52 -04:00
chardev.h
checksum.c bcachefs: Track incompressible data 2023-10-22 17:08:34 -04:00
checksum.h bcachefs: Track incompressible data 2023-10-22 17:08:34 -04:00
clock.c bcachefs: Persist 64 bit io clocks 2023-10-22 17:08:52 -04:00
clock.h bcachefs: Convert various code to printbuf 2023-10-22 17:08:43 -04:00
clock_types.h bcachefs: Persist 64 bit io clocks 2023-10-22 17:08:52 -04:00
compress.c bcachefs: Work around a zstd bug 2023-10-22 17:08:50 -04:00
compress.h
debug.c bcachefs: Include device in btree IO error messages 2023-10-22 17:08:52 -04:00
debug.h bcachefs: Drop sysfs interface to debug parameters 2023-10-22 17:08:45 -04:00
dirent.c bcachefs: Print out d_type in dirent_to_text() 2023-10-22 17:08:39 -04:00
dirent.h bcachefs: Convert all bch2_trans_commit() users to BTREE_INSERT_ATOMIC 2023-10-22 17:08:33 -04:00
disk_groups.c bcachefs: Fix a couple null ptr derefs when no disk groups exist 2023-10-22 17:08:43 -04:00
disk_groups.h bcachefs: Fix disk groups not being updated when set via sysfs 2023-10-22 17:08:43 -04:00
ec.c bcachefs: Fix unnecessary read amplificaiton when allocating ec stripes 2023-10-22 17:08:53 -04:00
ec.h bcachefs: Rework allocating buckets for stripes 2023-10-22 17:08:51 -04:00
ec_types.h bcachefs: Kill stripe->dirty 2023-10-22 17:08:51 -04:00
error.c bcachefs: Turn c->state_lock into an rwsem 2023-10-22 17:08:41 -04:00
error.h bcachefs: Improve some IO error messages 2023-10-22 17:08:49 -04:00
extent_update.c bcachefs: Extents may now cross btree node boundaries 2023-10-22 17:08:53 -04:00
extent_update.h bcachefs: Move extent overwrite handling out of core btree code 2023-10-22 17:08:36 -04:00
extents.c bcachefs: Fix some (spurious) warnings about uninitialized vars 2023-10-22 17:08:54 -04:00
extents.h bcachefs: Drop invalid stripe ptrs in fsck 2023-10-22 17:08:53 -04:00
extents_types.h bcachefs: Limit pointers to being in only one stripe 2023-10-22 17:08:29 -04:00
eytzinger.h bcachefs: Fix check for if extent update is allocating 2023-10-22 17:08:14 -04:00
fifo.h bcachefs: Convert bucket invalidation to key marking path 2023-10-22 17:08:16 -04:00
fs-common.c bcachefs: Inode create optimization 2023-10-22 17:08:45 -04:00
fs-common.h bcachefs: Update directory timestamps during link 2023-10-22 17:08:33 -04:00
fs-io.c bcachefs: Fix bch2_btree_iter_peek_prev() 2023-10-22 17:08:53 -04:00
fs-io.h bcachefs: Kill bchfs_extent_update() 2023-10-22 17:08:29 -04:00
fs-ioctl.c bcachefs: Some project id fixes 2023-10-22 17:08:44 -04:00
fs-ioctl.h bcachefs: Fix mtime/ctime updates 2023-10-22 17:08:07 -04:00
fs.c bcachefs: Reduce/kill BKEY_PADDED use 2023-10-22 17:08:50 -04:00
fs.h bcachefs: Flag inodes that had btree update errors 2023-10-22 17:08:49 -04:00
fsck.c bcachefs: Don't use inode btree key cache in fsck code 2023-10-22 17:08:53 -04:00
fsck.h bcachefs: some improvements to startup messages and options 2023-10-22 17:08:21 -04:00
inode.c bcachefs: Don't use inode btree key cache in fsck code 2023-10-22 17:08:53 -04:00
inode.h bcachefs: Don't use inode btree key cache in fsck code 2023-10-22 17:08:53 -04:00
io.c bcachefs: Correctly order flushes and journal writes on multi device filesystems 2023-10-22 17:08:51 -04:00
io.h bcachefs: Reduce/kill BKEY_PADDED use 2023-10-22 17:08:50 -04:00
io_types.h bcachefs: Remove some uses of PAGE_SIZE in the btree code 2023-10-22 17:08:43 -04:00
journal.c bcachefs: Assert that we're not trying to flush journal seq in the future 2023-10-22 17:08:53 -04:00
journal.h bcachefs: Correctly order flushes and journal writes on multi device filesystems 2023-10-22 17:08:51 -04:00
journal_io.c bcachefs: Dump journal state when we get stuck 2023-10-22 17:08:54 -04:00
journal_io.h bcachefs: Improve diagnostics when journal entries are missing 2023-10-22 17:08:52 -04:00
journal_reclaim.c bcachefs: Add error message for some allocation failures 2023-10-22 17:08:53 -04:00
journal_reclaim.h bcachefs: Fix race between journal_seq_copy() and journal_seq_drop() 2023-10-22 17:08:50 -04:00
journal_seq_blacklist.c bcachefs: Don't require flush/fua on every journal write 2023-10-22 17:08:49 -04:00
journal_seq_blacklist.h bcachefs: Fix a bug with the journal_seq_blacklist mechanism 2023-10-22 17:08:43 -04:00
journal_types.h bcachefs: Correctly order flushes and journal writes on multi device filesystems 2023-10-22 17:08:51 -04:00
Kconfig bcachefs: Take a SRCU lock in btree transactions 2023-10-22 17:08:47 -04:00
keylist.c bcachefs: Interior btree updates are now fully transactional 2023-10-22 17:08:40 -04:00
keylist.h bcachefs: Interior btree updates are now fully transactional 2023-10-22 17:08:40 -04:00
keylist_types.h
Makefile bcachefs: New varints 2023-10-22 17:08:46 -04:00
migrate.c bcachefs: Reduce/kill BKEY_PADDED use 2023-10-22 17:08:50 -04:00
migrate.h
move.c bcachefs: Use x-macros for compat feature bits 2023-10-22 17:08:54 -04:00
move.h bcachefs: Scan for old btree nodes if necessary on mount 2023-10-22 17:08:54 -04:00
move_types.h bcachefs: Improve warning for copygc failing to move data 2023-10-22 17:08:40 -04:00
movinggc.c bcachefs: Add code to scan for/rewite old btree nodes 2023-10-22 17:08:54 -04:00
movinggc.h bcachefs: Make copygc thread global 2023-10-22 17:08:42 -04:00
opts.c bcachefs: Use x-macros for compat feature bits 2023-10-22 17:08:54 -04:00
opts.h bcachefs: Use x-macros for compat feature bits 2023-10-22 17:08:54 -04:00
quota.c bcachefs: Fix setquota 2023-10-22 17:08:39 -04:00
quota.h bcachefs: more project quota fixes 2023-10-22 17:08:14 -04:00
quota_types.h bcachefs: bch2_fs_quota_transfer 2023-10-22 17:08:13 -04:00
rebalance.c bcachefs: Scan for old btree nodes if necessary on mount 2023-10-22 17:08:54 -04:00
rebalance.h bcachefs: Convert various code to printbuf 2023-10-22 17:08:43 -04:00
rebalance_types.h bcachefs: Persist 64 bit io clocks 2023-10-22 17:08:52 -04:00
recovery.c bcachefs: Bring back metadata only gc 2023-10-22 17:08:54 -04:00
recovery.h bcachefs: Add support for doing btree updates prior to journal replay 2023-10-22 17:08:52 -04:00
reflink.c bcachefs: Reduce/kill BKEY_PADDED use 2023-10-22 17:08:50 -04:00
reflink.h bcachefs: Indirect inline data extents 2023-10-22 17:08:45 -04:00
replicas.c bcachefs: Don't fail mounts due to devices that are marked as failed 2023-10-22 17:08:54 -04:00
replicas.h bcachefs: Redo checks for sufficient devices 2023-10-22 17:08:53 -04:00
replicas_types.h bcachefs: Switch replicas to mark_lock 2023-10-22 17:08:13 -04:00
siphash.c
siphash.h
six.c
six.h
str_hash.h bcachefs: bch2_trans_get_iter() no longer returns errors 2023-10-22 17:08:48 -04:00
super-io.c bcachefs: Fix bch2_write_super to obey very_degraded option 2023-10-22 17:08:54 -04:00
super-io.h bcachefs: Persist 64 bit io clocks 2023-10-22 17:08:52 -04:00
super.c bcachefs: Fix an allocator startup race 2023-10-22 17:08:54 -04:00
super.h bcachefs: Fix unmount path 2023-10-22 17:08:44 -04:00
super_types.h bcachefs: Add BCH_BKEY_PTRS_MAX 2023-10-22 17:08:50 -04:00
sysfs.c bcachefs: Redo checks for sufficient devices 2023-10-22 17:08:53 -04:00
sysfs.h
tests.c bcachefs: Fix rand_delete() test 2023-10-22 17:08:49 -04:00
tests.h bcachefs: Add error handling to unit & perf tests 2023-10-22 17:08:48 -04:00
trace.c
trace.h bcachefs: Throttle updates when btree key cache is too dirty 2023-10-22 17:08:48 -04:00
util.c bcachefs: Convert various code to printbuf 2023-10-22 17:08:43 -04:00
util.h bcachefs: Check for duplicate device ptrs in bch2_bkey_ptrs_invalid() 2023-10-22 17:08:50 -04:00
varint.c bcachefs: New varints 2023-10-22 17:08:46 -04:00
varint.h bcachefs: New varints 2023-10-22 17:08:46 -04:00
vstructs.h
xattr.c bcachefs: Some project id fixes 2023-10-22 17:08:44 -04:00
xattr.h bcachefs: Make bkey types globally unique 2023-10-22 17:08:12 -04:00