linux/fs/bcachefs
Kent Overstreet a292be3b68 bcachefs: Reconstruct missing snapshot nodes
When the snapshots btree is going, we'll have to delete huge amounts of
data - unless we can reconstruct it by looking at the keys that refer to
it.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2024-04-03 14:46:51 -04:00
..
acl.c bcachefs: make RO snapshots actually RO 2024-01-01 11:47:07 -05:00
acl.h
alloc_background_format.h bcachefs: alloc_background_format.h 2024-01-21 13:27:10 -05:00
alloc_background.c bcachefs: Check for bad needs_discard before doing discard 2024-04-02 20:24:00 -04:00
alloc_background.h bcachefs: Split out discard fastpath 2024-03-13 21:22:25 -04:00
alloc_foreground.c bcachefs: BCH_WATERMARK_interior_updates 2024-04-01 21:14:02 -04:00
alloc_foreground.h
alloc_types.h bcachefs: BCH_WATERMARK_interior_updates 2024-04-01 21:14:02 -04:00
backpointers.c bcachefs: fix backpointer for missing alloc key msg 2024-03-31 20:36:11 -04:00
backpointers.h bcachefs: Kill bch2_bkey_ptr_data_type() 2024-03-31 20:36:11 -04:00
bbpos_types.h bcachefs: Pin btree cache in ram for random access in fsck 2024-03-13 21:22:24 -04:00
bbpos.h
bcachefs_format.h bcachefs: Flag btrees with missing data 2024-04-03 14:46:51 -04:00
bcachefs_ioctl.h bcachefs: Replace zero-length array with flex-array member and use __counted_by 2024-01-01 11:47:41 -05:00
bcachefs.h bcachefs: Reconstruct missing snapshot nodes 2024-04-03 14:46:51 -04:00
bkey_buf.h
bkey_cmp.h
bkey_methods.c bcachefs: Add .val_to_text() for KEY_TYPE_cookie 2024-01-21 13:27:09 -05:00
bkey_methods.h bcachefs: BTREE_TRIGGER_ATOMIC 2024-01-21 06:01:45 -05:00
bkey_sort.c bcachefs: bkey_copy() is no longer a macro 2023-11-05 13:12:18 -05:00
bkey_sort.h
bkey_types.h bcachefs: Split out bkey_types.h 2024-03-13 21:22:26 -04:00
bkey.c bcachefs: Improve move_extent tracepoint 2024-01-21 13:27:09 -05:00
bkey.h bcachefs: Split out bkey_types.h 2024-03-13 21:22:26 -04:00
bset.c bcachefs: Fix btree node keys accounting in topology repair path 2024-03-31 20:36:11 -04:00
bset.h bcachefs: Fix btree node keys accounting in topology repair path 2024-03-31 20:36:11 -04:00
btree_cache.c bcachefs: Improved topology repair checks 2024-03-31 20:36:11 -04:00
btree_cache.h bcachefs: Prep work for variable size btree node buffers 2024-01-21 13:27:10 -05:00
btree_gc.c bcachefs: Topology repair now uses nodes found by scanning to fill holes 2024-04-03 14:45:30 -04:00
btree_gc.h
btree_io.c bcachefs: Flag btrees with missing data 2024-04-03 14:46:51 -04:00
btree_io.h bcachefs: Include btree_trans in more tracepoints 2024-01-01 11:47:40 -05:00
btree_iter.c bcachefs: Improved topology repair checks 2024-03-31 20:36:11 -04:00
btree_iter.h bcachefs: Fix excess transaction restarts in __bchfs_fallocate() 2024-01-21 13:27:10 -05:00
btree_journal_iter.c bcachefs: bch2_shoot_down_journal_keys() 2024-04-03 14:44:18 -04:00
btree_journal_iter.h bcachefs: bch2_shoot_down_journal_keys() 2024-04-03 14:44:18 -04:00
btree_key_cache_types.h bcachefs: Run btree key cache shrinker less aggressively 2023-11-13 21:45:01 -05:00
btree_key_cache.c bcachefs: Improve bch2_fatal_error() 2024-03-18 00:24:24 -04:00
btree_key_cache.h bcachefs; kill bch2_btree_key_cache_flush() 2024-01-01 11:47:41 -05:00
btree_locking.c bcachefs: Drop redundant btree_path_downgrade()s 2024-03-13 21:22:25 -04:00
btree_locking.h bcachefs: Improve trace_trans_restart_relock 2024-01-21 13:27:10 -05:00
btree_node_scan_types.h bcachefs: Repair pass for scanning for btree nodes 2024-04-03 14:44:18 -04:00
btree_node_scan.c bcachefs: Repair pass for scanning for btree nodes 2024-04-03 14:44:18 -04:00
btree_node_scan.h bcachefs: Repair pass for scanning for btree nodes 2024-04-03 14:44:18 -04:00
btree_trans_commit.c bcachefs: BCH_WATERMARK_interior_updates 2024-04-01 21:14:02 -04:00
btree_types.h bcachefs: Pin btree cache in ram for random access in fsck 2024-03-13 21:22:24 -04:00
btree_update_interior.c bcachefs: bch2_btree_root_alloc() -> bch2_btree_root_alloc_fake() 2024-04-03 14:44:18 -04:00
btree_update_interior.h bcachefs: bch2_btree_root_alloc() -> bch2_btree_root_alloc_fake() 2024-04-03 14:44:18 -04:00
btree_update.c bcachefs: Don't do extent merging before journal replay is finished 2024-03-31 20:36:11 -04:00
btree_update.h bcachefs: bch2_btree_bit_mod() 2024-03-13 21:22:24 -04:00
btree_write_buffer_types.h bcachefs: Inline btree write buffer sort 2024-01-01 11:47:41 -05:00
btree_write_buffer.c bcachefs: Fix journal pins in btree write buffer 2024-03-31 20:36:10 -04:00
btree_write_buffer.h bcachefs: __bch2_journal_key_to_wb -> bch2_journal_key_to_wb_slowpath 2024-01-05 23:24:19 -05:00
buckets_types.h bcachefs: bch_fs_usage_base 2024-01-21 06:01:45 -05:00
buckets_waiting_for_journal_types.h
buckets_waiting_for_journal.c
buckets_waiting_for_journal.h
buckets.c bcachefs: Kill bch2_bkey_ptr_data_type() 2024-03-31 20:36:11 -04:00
buckets.h bcachefs: BCH_WATERMARK_interior_updates 2024-04-01 21:14:02 -04:00
chardev.c bcachefs: Split out recovery_passes.c 2024-03-31 20:36:11 -04:00
chardev.h
checksum.c bcachefs: fixup for building in userspace 2024-03-10 15:34:08 -04:00
checksum.h bcachefs: improve checksum error messages 2024-01-05 23:24:21 -05:00
clock_types.h
clock.c bcachefs: bch2_kthread_io_clock_wait() no longer sleeps until full amount 2024-01-21 13:27:09 -05:00
clock.h
compress.c bcachefs: kill kvpmalloc() 2024-03-13 18:39:12 -04:00
compress.h bcachefs: bch2_prt_compression_type() 2024-01-21 06:01:45 -05:00
darray.c bcachefs: DARRAY_PREALLOCATED() 2024-01-01 11:46:52 -05:00
darray.h bcachefs: Convert split_devs() to darray 2024-01-01 11:47:43 -05:00
data_update.c bcachefs: fix nocow lock deadlock 2024-04-02 01:04:10 -04:00
data_update.h bcachefs: Data update path won't accidentaly grow replicas 2023-11-25 21:48:42 -05:00
debug.c bcachefs: Improve bch2_fatal_error() 2024-03-18 00:24:24 -04:00
debug.h
dirent_format.h bcachefs: dirent_format.h 2024-01-21 13:27:10 -05:00
dirent.c bcachefs: Check for subvolume children when deleting subvolumes 2024-03-13 21:22:24 -04:00
dirent.h bcachefs: Correctly reattach subvolumes 2024-03-13 21:22:24 -04:00
disk_groups_types.h
disk_groups.c bcachefs: %pg is banished 2024-01-05 23:24:21 -05:00
disk_groups.h
ec_format.h bcachefs: ec_format.h 2024-01-21 13:27:11 -05:00
ec_types.h bcachefs: Rename bch_replicas_entry -> bch_replicas_entry_v1 2024-01-01 11:47:38 -05:00
ec.c bcachefs: Improve bch2_fatal_error() 2024-03-18 00:24:24 -04:00
ec.h bcachefs: Combine .trans_trigger, .atomic_trigger 2024-01-05 23:24:20 -05:00
errcode.c bcachefs: Errcode tracepoint, documentation 2024-03-13 21:22:25 -04:00
errcode.h bcachefs: Add checks for invalid snapshot IDs 2024-03-31 20:36:11 -04:00
error.c bcachefs: On emergency shutdown, print out current journal sequence number 2024-04-01 01:07:24 -04:00
error.h bcachefs: Improved topology repair checks 2024-03-31 20:36:11 -04:00
extent_update.c bcachefs: growable btree_paths 2024-01-01 11:47:44 -05:00
extent_update.h
extents_format.h bcachefs: reflink_format.h 2024-01-21 13:27:11 -05:00
extents_types.h
extents.c bcachefs: Repair pass for scanning for btree nodes 2024-04-03 14:44:18 -04:00
extents.h bcachefs: Repair pass for scanning for btree nodes 2024-04-03 14:44:18 -04:00
eytzinger.c bcachefs: Etyzinger cleanups 2024-04-03 14:44:18 -04:00
eytzinger.h bcachefs: Etyzinger cleanups 2024-04-03 14:44:18 -04:00
fifo.h bcachefs: kill kvpmalloc() 2024-03-13 18:39:12 -04:00
fs-common.c bcachefs: Check for subvolume children when deleting subvolumes 2024-03-13 21:22:24 -04:00
fs-common.h
fs-io-buffered.c bcachefs: Buffered write path now can avoid the inode lock 2024-03-13 21:22:26 -04:00
fs-io-buffered.h
fs-io-direct.c bcachefs: add REQ_SYNC and REQ_IDLE in write dio 2024-03-31 20:36:11 -04:00
fs-io-direct.h
fs-io-pagecache.c bcachefs: Fix excess transaction restarts in __bchfs_fallocate() 2024-01-21 13:27:10 -05:00
fs-io-pagecache.h bcachefs: fix bch_folio_sector padding 2024-03-13 21:22:26 -04:00
fs-io.c bcachefs: fix incorrect usage of REQ_OP_FLUSH 2024-01-22 12:37:51 -05:00
fs-io.h
fs-ioctl.c bcachefs: unlock parent dir if entry is not found in subvolume deletion 2024-01-28 21:41:09 -05:00
fs-ioctl.h bcachefs: x-macro-ify inode flags enum 2023-11-05 13:12:18 -05:00
fs.c bcachefs: fix mount error path 2024-03-31 20:36:10 -04:00
fs.h bcachefs: kill INODE_LOCK, use lock_two_nondirectories() 2024-01-01 11:47:36 -05:00
fsck.c bcachefs: ratelimit informational fsck errors 2024-04-02 20:24:00 -04:00
fsck.h bcachefs: bch2_check_subvolume_structure() 2024-03-13 21:22:25 -04:00
inode_format.h bcachefs: inode_format.h 2024-01-21 13:27:10 -05:00
inode.c bcachefs: fix misplaced newline in __bch2_inode_unpacked_to_text() 2024-03-31 20:36:10 -04:00
inode.h bcachefs: Pass inode bkey to check_path() 2024-03-13 21:22:24 -04:00
io_misc.c bcachefs: Add error messages to logged ops fns 2024-03-31 20:36:11 -04:00
io_misc.h
io_read.c bcachefs: Prefer struct_size over open coded arithmetic 2024-03-13 21:22:26 -04:00
io_read.h
io_write_types.h
io_write.c bcachefs: time_stats: split stats-with-quantiles into a separate structure 2024-03-13 21:38:01 -04:00
io_write.h closures: CLOSURE_CALLBACK() to fix type punning 2023-11-24 00:29:58 -05:00
journal_io.c bcachefs: Improve bch2_fatal_error() 2024-03-18 00:24:24 -04:00
journal_io.h bcachefs: split out ignore_blacklisted, ignore_not_dirty 2024-03-13 21:22:25 -04:00
journal_reclaim.c bcachefs: pull out time_stats.[ch] 2024-03-13 21:30:35 -04:00
journal_reclaim.h bcachefs: btree write buffer now slurps keys from journal 2024-01-01 11:47:41 -05:00
journal_sb.c
journal_sb.h
journal_seq_blacklist.c bcachefs: Etyzinger cleanups 2024-04-03 14:44:18 -04:00
journal_seq_blacklist.h
journal_types.h bcachefs: pull out time_stats.[ch] 2024-03-13 21:30:35 -04:00
journal.c bcachefs: Fix lost wakeup on journal shutdown 2024-03-18 23:35:42 -04:00
journal.h bcachefs: better journal pipelining 2024-03-10 15:34:08 -04:00
Kconfig bcachefs: optimize __bch2_trans_get(), kill DEBUG_TRANSACTIONS 2024-01-01 11:47:44 -05:00
keylist_types.h
keylist.c bcachefs: for_each_keylist_key() declares loop iter 2024-01-01 11:47:43 -05:00
keylist.h bcachefs: for_each_keylist_key() declares loop iter 2024-01-01 11:47:43 -05:00
logged_ops_format.h bcachefs: logged_ops_format.h 2024-01-21 13:27:11 -05:00
logged_ops.c bcachefs: Logged op errors should be ignored 2024-04-01 00:04:10 -04:00
logged_ops.h
lru.c bcachefs: reconstruct_alloc cleanup 2024-03-13 21:22:26 -04:00
lru.h
Makefile bcachefs: Repair pass for scanning for btree nodes 2024-04-03 14:44:18 -04:00
mean_and_variance_test.c mean_and_variance: Drop always failing tests 2024-04-02 14:45:08 -04:00
mean_and_variance.c bcachefs: mean_and_variance: put struct mean_and_variance_weighted on a diet 2024-03-13 21:37:58 -04:00
mean_and_variance.h bcachefs: mean_and_variance: put struct mean_and_variance_weighted on a diet 2024-03-13 21:37:58 -04:00
migrate.c bcachefs: Kill some -EINVALs 2024-03-10 15:34:09 -04:00
migrate.h
move_types.h
move.c bcachefs: opts->compression can now also be applied in the background 2024-01-21 13:27:10 -05:00
move.h bcachefs: rebalance should wakeup on shutdown if disabled 2024-01-01 11:47:39 -05:00
movinggc.c bcachefs: Improve bch2_fatal_error() 2024-03-18 00:24:24 -04:00
movinggc.h
nocow_locking_types.h
nocow_locking.c
nocow_locking.h
opts.c bcachefs: Improve -o norecovery; opts.recovery_pass_limit 2024-03-31 20:36:12 -04:00
opts.h bcachefs: Repair pass for scanning for btree nodes 2024-04-03 14:44:18 -04:00
printbuf.c bcachefs: Fix missing va_end() 2024-02-13 21:59:27 -05:00
printbuf.h bcachefs: prt_bitflags_vector() 2024-01-01 11:47:07 -05:00
quota_format.h bcachefs; quota_format.h 2024-01-21 13:27:10 -05:00
quota_types.h
quota.c bcachefs: for_each_btree_key() now declares loop iter 2024-01-01 11:47:42 -05:00
quota.h
rebalance_types.h
rebalance.c bcachefs: rebalance_status now shows correct units 2024-03-13 21:22:25 -04:00
rebalance.h
recovery_passes_types.h bcachefs: Reconstruct missing snapshot nodes 2024-04-03 14:46:51 -04:00
recovery_passes.c bcachefs: Repair pass for scanning for btree nodes 2024-04-03 14:44:18 -04:00
recovery_passes.h bcachefs: bch2_run_explicit_recovery_pass_persistent() 2024-03-31 20:36:12 -04:00
recovery.c bcachefs: Reconstruct missing snapshot nodes 2024-04-03 14:46:51 -04:00
recovery.h bcachefs: Flag btrees with missing data 2024-04-03 14:46:51 -04:00
reflink_format.h bcachefs: reflink_format.h 2024-01-21 13:27:11 -05:00
reflink.c bcachefs: Fix repair path for missing indirect extents 2024-03-31 20:36:11 -04:00
reflink.h bcachefs: BTREE_TRIGGER_ATOMIC 2024-01-21 06:01:45 -05:00
replicas_types.h bcachefs: Replace zero-length arrays with flexible-array members 2024-01-01 11:47:39 -05:00
replicas.c bcachefs: Etyzinger cleanups 2024-04-03 14:44:18 -04:00
replicas.h bcachefs: Rename bch_replicas_entry -> bch_replicas_entry_v1 2024-01-01 11:47:38 -05:00
sb-clean.c bcachefs: jset_entry_datetime 2024-03-10 15:34:08 -04:00
sb-clean.h
sb-counters_format.h bcachefs: sb-counters_format.h 2024-01-21 13:27:10 -05:00
sb-counters.c bcachefs: counters.c -> sb-counters.c 2024-01-21 13:27:10 -05:00
sb-counters.h bcachefs: counters.c -> sb-counters.c 2024-01-21 13:27:10 -05:00
sb-downgrade.c bcachefs: Split out recovery_passes.c 2024-03-31 20:36:11 -04:00
sb-downgrade.h bcachefs: Upgrades now specify errors to fix, like downgrades 2024-01-05 23:24:20 -05:00
sb-errors_types.h bcachefs: Reconstruct missing snapshot nodes 2024-04-03 14:46:51 -04:00
sb-errors.c bcachefs: bch_sb_field_downgrade 2024-01-01 11:47:07 -05:00
sb-errors.h bcachefs: bch_sb.recovery_passes_required 2024-01-01 11:47:07 -05:00
sb-members.c bcachefs: fix missing endiannes conversion in sb_members 2024-02-10 17:37:34 -05:00
sb-members.h bcachefs: for_each_member_device_rcu() now declares loop iter 2024-01-01 11:47:42 -05:00
seqmutex.h
siphash.c
siphash.h
six.c bcachefs: six locks: Simplify optimistic spinning 2024-01-01 11:47:38 -05:00
six.h bcachefs: six lock: fix typos 2024-01-01 11:47:40 -05:00
snapshot_format.h bcachefs: snapshot_format.h 2024-01-21 13:27:10 -05:00
snapshot.c bcachefs: Reconstruct missing snapshot nodes 2024-04-03 14:46:51 -04:00
snapshot.h bcachefs: Reconstruct missing snapshot nodes 2024-04-03 14:46:51 -04:00
str_hash.h bcachefs: bch2_hash_set_snapshot() -> bch2_hash_set_in_snapshot() 2024-03-10 15:34:08 -04:00
subvolume_format.h bcachefs: bch_subvolume::fs_path_parent 2024-03-13 21:22:24 -04:00
subvolume_types.h bcachefs: Move snapshot table size to struct snapshot_table 2024-03-31 20:36:11 -04:00
subvolume.c bcachefs: Split out recovery_passes.c 2024-03-31 20:36:11 -04:00
subvolume.h bcachefs: Split out recovery_passes.c 2024-03-31 20:36:11 -04:00
super_types.h bcachefs: port block device access to file 2024-02-25 12:05:25 +01:00
super-io.c bcachefs: Flag btrees with missing data 2024-04-03 14:46:51 -04:00
super-io.h bcachefs: __bch2_sb_field_to_text() 2024-01-05 23:24:21 -05:00
super.c bcachefs: Repair pass for scanning for btree nodes 2024-04-03 14:44:18 -04:00
super.h bcachefs: convert bch_fs_flags to x-macro 2024-01-01 11:47:38 -05:00
sysfs.c bcachefs: time_stats: split stats-with-quantiles into a separate structure 2024-03-13 21:38:01 -04:00
sysfs.h
tests.c bcachefs: for_each_btree_key() now declares loop iter 2024-01-01 11:47:42 -05:00
tests.h
thread_with_file_types.h bcachefs: thread_with_stdio: convert to darray 2024-03-13 18:39:13 -04:00
thread_with_file.c bcachefs: thread_with_file: add f_ops.flush 2024-03-13 21:22:20 -04:00
thread_with_file.h bcachefs: thread_with_file: add f_ops.flush 2024-03-13 21:22:20 -04:00
time_stats.c bcachefs: time_stats: split stats-with-quantiles into a separate structure 2024-03-13 21:38:01 -04:00
time_stats.h bcachefs: time_stats: shrink time_stat_buffer for better alignment 2024-03-13 21:38:03 -04:00
trace.c
trace.h bcachefs: Errcode tracepoint, documentation 2024-03-13 21:22:25 -04:00
two_state_shared_lock.c
two_state_shared_lock.h
util.c bcachefs: Etyzinger cleanups 2024-04-03 14:44:18 -04:00
util.h bcachefs: Etyzinger cleanups 2024-04-03 14:44:18 -04:00
varint.c
varint.h
vstructs.h bcachefs: vstruct_for_each() now declares loop iter 2024-01-01 11:47:42 -05:00
xattr_format.h bcachefs: xattr_format.h 2024-01-21 13:27:10 -05:00
xattr.c bcachefs: avoid returning private error code in bch2_xattr_bcachefs_set 2024-03-13 21:22:26 -04:00
xattr.h