aboutsummaryrefslogtreecommitdiffstats
path: root/fs/bcachefs/recovery.c
AgeCommit message (Expand)AuthorFilesLines
11 daysbcachefs: journal_replay_entry_early() checks for nonexistent deviceKent Overstreet1-8/+11
11 daysbcachefs: bch_member.last_journal_bucketKent Overstreet1-0/+2
11 daysbcachefs: journal seq blacklist gc no longer has to walk btreeKent Overstreet1-4/+3
11 daysbcachefs: bch2_trans_unlock() must always be followed by relock() or begin()Kent Overstreet1-1/+2
11 daysbcachefs: member helper cleanupsKent Overstreet1-1/+1
11 daysbcachefs: iter/update/trigger/str_hash flag cleanupKent Overstreet1-7/+7
11 daysbcachefs: Finish converting reconstruct_alloc to errors_silentKent Overstreet1-0/+11
11 daysbcachefs: Don't read journal just for fsckKent Overstreet1-1/+1
11 daysbcachefs: Run upgrade/downgrade even in -o nochanges modeKent Overstreet1-43/+41
14 daysbcachefs: don't free error pointersKent Overstreet1-1/+2
2024-04-16bcachefs: make sure to release last journal pin in replayKent Overstreet1-1/+4
2024-04-09bcachefs: Don't scan for btree nodes when we can reconstructKent Overstreet1-14/+0
2024-04-03bcachefs: Reconstruct missing snapshot nodesKent Overstreet1-0/+1
2024-04-03bcachefs: Flag btrees with missing dataKent Overstreet1-0/+23
2024-04-03bcachefs: Repair pass for scanning for btree nodesKent Overstreet1-25/+29
2024-04-03bcachefs: bch2_btree_root_alloc() -> bch2_btree_root_alloc_fake()Kent Overstreet1-2/+2
2024-04-03bcachefs: bch2_shoot_down_journal_keys()Kent Overstreet1-10/+12
2024-04-03bcachefs: Clear recovery_passes_required as they complete without errorsKent Overstreet1-3/+1
2024-03-31bcachefs: Improve -o norecovery; opts.recovery_pass_limitKent Overstreet1-6/+4
2024-03-31bcachefs: Ensure bch_sb_field_ext always existsKent Overstreet1-17/+8
2024-03-31bcachefs: Flush journal immediately after replay if we did early repairKent Overstreet1-0/+20
2024-03-31bcachefs: Split out recovery_passes.cKent Overstreet1-244/+5
2024-03-17bcachefs: Don't corrupt journal keys gap buffer when dropping alloc infoKent Overstreet1-1/+5
2024-03-13bcachefs: reconstruct_alloc cleanupKent Overstreet1-13/+38
2024-03-13bcachefs: split out ignore_blacklisted, ignore_not_dirtyKent Overstreet1-3/+4
2024-03-13bcachefs: improve move_gap()Kent Overstreet1-2/+1
2024-03-13bcachefs: journal_keys now uses darray helpersKent Overstreet1-6/+2
2024-03-13bcachefs: Rename journal_keys.d -> journal_keys.dataKent Overstreet1-5/+5
2024-03-13bcachefs: Kill more -EIO error codesKent Overstreet1-1/+1
2024-03-10bcachefs: Fix journal replay with unreadable btree rootsKent Overstreet1-0/+11
2024-03-10bcachefs: journal_seq_blacklist_add() now handles entries being added out of ...Kent Overstreet1-1/+1
2024-02-13bcachefs: Fix check_version_upgrade()Kent Overstreet1-5/+6
2024-01-21bcachefs: bch_fs_usage_baseKent Overstreet1-1/+1
2024-01-05bcachefs: Restart recovery passes more reliablyKent Overstreet1-1/+4
2024-01-05bcachefs: Upgrades now specify errors to fix, like downgradesKent Overstreet1-9/+9
2024-01-05bcachefs: Online fsck can now fix errorsKent Overstreet1-2/+5
2024-01-05bcachefs: Upgrading uses bch_sb.recovery_passes_requiredKent Overstreet1-8/+6
2024-01-05bcachefs: Fix nochanges/read_only interactionKent Overstreet1-1/+3
2024-01-01bcachefs: vstruct_for_each() now declares loop iterKent Overstreet1-6/+3
2024-01-01bcachefs: for_each_member_device() now declares loop iterKent Overstreet1-6/+4
2024-01-01bcachefs: darray_for_each() now declares loop iterKent Overstreet1-1/+0
2024-01-01bcachefs: bch_err_(fn|msg) check if should printKent Overstreet1-15/+9
2024-01-01bcachefs: Fix snapshot.c assertion for online fsckKent Overstreet1-0/+3
2024-01-01bcachefs: Kill for_each_btree_key()Kent Overstreet1-1/+2
2024-01-01bcachefs: bch2_run_online_recovery_passes()Kent Overstreet1-19/+38
2024-01-01bcachefs: Add ability to redirect log outputKent Overstreet1-3/+3
2024-01-01bcachefs: Explicity go RW for fsckKent Overstreet1-1/+1
2024-01-01bcachefs: convert bch_fs_flags to x-macroKent Overstreet1-17/+17
2024-01-01bcachefs: Kill dev_usage->buckets_ecKent Overstreet1-2/+0
2024-01-01bcachefs: Don't flush journal after replayKent Overstreet1-3/+1
2024-01-01bcachefs: Rename BTREE_INSERT flagsKent Overstreet1-6/+6
2024-01-01bcachefs: Make journal replay more efficientKent Overstreet1-28/+62
2024-01-01bcachefs: Go rw before journal replayKent Overstreet1-4/+12
2024-01-01bcachefs: BTREE_INSERT_JOURNAL_REPLAY now "don't init trans->journal_res"Kent Overstreet1-0/+2
2024-01-01bcachefs: Print old version when scanning for old metadataKent Overstreet1-2/+6
2024-01-01bcachefs: Flush fsck errors before running twiceKent Overstreet1-0/+2
2024-01-01bcachefs: bch_sb_field_downgradeKent Overstreet1-1/+23
2024-01-01bcachefs: bch_sb.recovery_passes_requiredKent Overstreet1-15/+60
2024-01-01bcachefs: Add persistent identifiers for recovery passesKent Overstreet1-2/+32
2024-01-01bcachefs: fix setting version_upgrade_completeKent Overstreet1-2/+2
2023-12-10bcachefs: Fix uninitialized var in bch2_journal_replay()Kent Overstreet1-1/+1
2023-11-24bcachefs: Proper refcounting for journal_keysKent Overstreet1-4/+7
2023-11-04bcachefs: Fix recovery when forced to use JSET_NO_FLUSH journal entryKent Overstreet1-0/+7
2023-11-04bcachefs: Fix build errors with gcc 10Kent Overstreet1-1/+1
2023-11-01bcachefs: Enumerate fsck errorsKent Overstreet1-2/+8
2023-11-01bcachefs: rebalance_workKent Overstreet1-0/+1
2023-10-31bcachefs: Ensure devices are always correctly initializedKent Overstreet1-15/+9
2023-10-31bcachefs: bch2_btree_id_str()Kent Overstreet1-3/+3
2023-10-31bcachefs: Don't run bch2_delete_dead_snapshots() unnecessarilyKent Overstreet1-1/+1
2023-10-22bcachefs: Fix drop_alloc_keys()Kent Overstreet1-15/+15
2023-10-22bcachefs: Fix another smatch complaintKent Overstreet1-1/+1
2023-10-22bcachefs: Make btree root read errors recoverableKent Overstreet1-5/+4
2023-10-22bcachefs: Heap allocate btree_transKent Overstreet1-3/+3
2023-10-22bcachefs: Fix W=12 build errorsKent Overstreet1-12/+4
2023-10-22bcachefs: Fix a handful of spelling mistakes in various messagesColin Ian King1-1/+1
2023-10-22bcachefs: BTREE_ID_logged_opsKent Overstreet1-0/+1
2023-10-22bcachefs: Split out snapshot.cKent Overstreet1-0/+1
2023-10-22bcachefs: Fix check_version_upgrade()Kent Overstreet1-1/+1
2023-10-22bcachefs: btree_journal_iter.cKent Overstreet1-519/+2
2023-10-22bcachefs: sb-clean.cKent Overstreet1-136/+9
2023-10-22bcachefs: Fix assorted checkpatch nitsKent Overstreet1-2/+2
2023-10-22bcachefs: BCH_COMPAT_bformat_overflow_done no longer requiredKent Overstreet1-7/+0
2023-10-22bcachefs: Ensure topology repair runsKent Overstreet1-0/+2
2023-10-22bcachefs: Log a message when running an explicit recovery passKent Overstreet1-10/+10
2023-10-22bcachefs: Print out required recovery passes on version upgradeKent Overstreet1-25/+37
2023-10-22bcachefs: In debug mode, run fsck again after fixing errorsKent Overstreet1-0/+23
2023-10-22bcachefs: Make topology repair a normal recovery passKent Overstreet1-4/+8
2023-10-22bcachefs: bch2_run_explicit_recovery_pass()Kent Overstreet1-4/+1
2023-10-22bcachefs: fix_errors option is now a proper enumKent Overstreet1-1/+1
2023-10-22bcachefs: Snapshot depth, skiplist fieldsKent Overstreet1-1/+12
2023-10-22bcachefs: Version table now lists required recovery passesKent Overstreet1-8/+21
2023-10-22bcachefs: bch2_sb_maybe_downgrade(), bch2_sb_upgrade()Kent Overstreet1-4/+4
2023-10-22bcachefs: bcachefs_metadata_version_major_minorKent Overstreet1-14/+49
2023-10-22bcachefs: Enumerate recovery passesKent Overstreet1-140/+87
2023-10-22bcachefs: Stash journal replay params in bch_fsKent Overstreet1-3/+8
2023-10-22bcachefs: Kill bch2_bucket_gens_read()Kent Overstreet1-5/+1
2023-10-22bcachefs: version_upgrade is now an enumKent Overstreet1-8/+11
2023-10-22bcachefs: BCH_SB_VERSION_UPGRADE_COMPLETE()Kent Overstreet1-23/+31
2023-10-22bcachefs: Delete redundant log messagesKent Overstreet1-2/+0
2023-10-22bcachefs: Assorted sparse fixesKent Overstreet1-3/+3
2023-10-22bcachefs: Allow for unknown btree IDsKent Overstreet1-8/+8
2023-10-22bcachefs: bch2_version_to_text()Kent Overstreet1-11/+16
2023-10-22bcachefs: Kill JOURNAL_WATERMARKKent Overstreet1-1/+1
2023-10-22bcachefs: New error message helpersKent Overstreet1-68/+38
2023-10-22bcachefs: Convert -ENOENT to private error codesKent Overstreet1-1/+1
2023-10-22bcachefs: BTREE_ID_snapshot_treeKent Overstreet1-5/+18
2023-10-22bcachefs: bch2_bkey_get_iter() helpersKent Overstreet1-4/+3
2023-10-22bcachefs: Add a cond_resched() call to journal_keys_sort()Kent Overstreet1-0/+2
2023-10-22bcachefs: Rip out code for storing backpointers in alloc keysKent Overstreet1-5/+2
2023-10-22bcachefs: use reservation for log messages during recoveryBrian Foster1-8/+8
2023-10-22bcachefs: Add a fallback when journal_keys doesn't fit in ramKent Overstreet1-18/+49
2023-10-22bcachefs: Add error message for failing to allocate sorted journal keysKent Overstreet1-1/+4
2023-10-22bcachefs: Private error codes: ENOMEMKent Overstreet1-5/+5
2023-10-22bcachefs: Drop some anonymous structs, unionsKent Overstreet1-4/+4
2023-10-22bcachefs: Simplify ec stripes heapKent Overstreet1-2/+0
2023-10-22bcachefs: Fragmentation LRUKent Overstreet1-0/+3
2023-10-22bcachefs: Fix failure to read btree rootsKent Overstreet1-2/+8
2023-10-22bcachefs: Rework lru btreeKent Overstreet1-4/+1
2023-10-22bcachefs: bucket_gens btreeKent Overstreet1-1/+14
2023-10-22bcachefs: KEY_TYPE_inode_v3, metadata_version_inode_v3Kent Overstreet1-2/+5
2023-10-22bcachefs: Start snapshots before bch2_gc()Kent Overstreet1-28/+14
2023-10-22bcachefs: New on disk format: BackpointersKent Overstreet1-2/+33
2023-10-22bcachefs: Go RW before check_alloc_info()Kent Overstreet1-7/+10
2023-10-22bcachefs: Start copygc when first going read-writeKent Overstreet1-17/+30
2023-10-22bcachefs: Convert EROFS errors to private error codesKent Overstreet1-2/+2
2023-10-22bcachefs: Log more messages in the journalKent Overstreet1-9/+20
2023-10-22bcachefs: Add a missing bch2_err_str() callKent Overstreet1-1/+1
2023-10-22bcachefs: Recover from blacklisted journal entriesKent Overstreet1-1/+9
2023-10-22bcachefs: Fix bch2_journal_keys_peek_upto()Kent Overstreet1-6/+6
2023-10-22bcachefs: Don't error out when just reading the journalKent Overstreet1-7/+7
2023-10-22bcachefs: New bpos_cmp(), bkey_cmp() replacementsKent Overstreet1-10/+9
2023-10-22bcachefs: Fixes for building in userspaceKent Overstreet1-1/+1
2023-10-22bcachefs: More style fixesKent Overstreet1-2/+1
2023-10-22bcachefs: Journal keys overlay fixesKent Overstreet1-1/+2
2023-10-22bcachefs: Assorted checkpatch fixesKent Overstreet1-2/+2
2023-10-22bcachefs: Kill journal_keys->journal_seq_baseKent Overstreet1-12/+2
2023-10-22bcachefs: Convert fsck errors to errcode.hKent Overstreet1-1/+1
2023-10-22bcachefs: Use bch2_err_str() in error messagesKent Overstreet1-2/+3
2023-10-22bcachefs: We can handle missing btree roots for all alloc btreesKent Overstreet1-4/+20
2023-10-22bcachefs: Fix subvol/snapshot deleting in recoveryKent Overstreet1-0/+6
2023-10-22bcachefs: Printbuf reworkKent Overstreet1-2/+2
2023-10-22bcachefs: Fix btree_and_journal_iterKent Overstreet1-62/+38
2023-10-22bcachefs: Fix for cmd_list_journalKent Overstreet1-3/+7
2023-10-22bcachefs: Fix journal_keys_search() overheadKent Overstreet1-18/+36
2023-10-22bcachefs: Always print when doing journal replay in fsckKent Overstreet1-1/+1
2023-10-22bcachefs: LRU repair tweaksKent Overstreet1-7/+2
2023-10-22bcachefs: Fix journal_iters_fix()Kent Overstreet1-2/+2
2023-10-22bcachefs: Go RW before bch2_check_lrus()Kent Overstreet1-36/+50
2023-10-22bcachefs: Kill old rebuild_replicas optionKent Overstreet1-14/+5
2023-10-22bcachefs: Fix for getting stuck in journal replayKent Overstreet1-3/+3
2023-10-22bcachefs: Introduce bch2_journal_keys_peek_(upto|slot)()Kent Overstreet1-7/+15
2023-10-22bcachefs: Fix a few warnings on 32 bitKent Overstreet1-1/+1
2023-10-22bcachefs: Use a genradix for reading journal entriesKent Overstreet1-31/+37
2023-10-22bcachefs: Refactor journal_keys_sort() to return an error codeKent Overstreet1-29/+26
2023-10-22bcachefs: Fold bucket_state in to BCH_DATA_TYPES()Kent Overstreet1-10/+5
2023-10-22bcachefs: More improvements for alloc info checksKent Overstreet1-1/+1
2023-10-22bcachefs: Gap buffer for journal keysKent Overstreet1-42/+102
2023-10-22bcachefs: Kill main in-memory bucket arrayKent Overstreet1-1/+1
2023-10-22bcachefs: Fsck for need_discard & freespace btreesKent Overstreet1-1/+28
2023-10-22bcachefs: Kill allocator threads & freelistsKent Overstreet1-0/+2
2023-10-22bcachefs: Freespace, need_discard btreesKent Overstreet1-2/+12
2023-10-22bcachefs: Introduce a separate journal watermark for copygcKent Overstreet1-2/+3
2023-10-22bcachefs: bch2_journal_log_msg()Kent Overstreet1-0/+3
2023-10-22bcachefs: Heap allocate printbufsKent Overstreet1-3/+19
2023-10-22bcachefs: Normal update/commit path now works before going RWKent Overstreet1-0/+2
2023-10-22bcachefs: Add .to_text() methods for all superblock sectionsKent Overstreet1-1/+1
2023-10-22bcachefs: opts.read_journal_onlyKent Overstreet1-0/+3
2023-10-22bcachefs: Delete some flag bits that are no longer usedKent Overstreet1-3/+0
2023-10-22bcachefs: Print a better message for mark and sweep passKent Overstreet1-2/+2
2023-10-22bcachefs: btree_gc no longer uses main in-memory bucket arrayKent Overstreet1-18/+5
2023-10-22bcachefs: run_one_trigger() now checks journal keysKent Overstreet1-0/+18
2023-10-22Revert "bcachefs: Delete some obsolete journal_seq_blacklist code"Kent Overstreet1-8/+14
2023-10-22bcachefs: Log & error message improvementsKent Overstreet1-6/+3
2023-10-22bcachefs: Add verbose log messages for journal readKent Overstreet1-0/+1
2023-10-22bcachefs: Use kvmalloc() for array of sorted keys in journal replayKent Overstreet1-2/+2
2023-10-22bcachefs: Simplify journal replayKent Overstreet1-95/+19
2023-10-22bcachefs: BTREE_ITER_WITH_JOURNALKent Overstreet1-114/+44
2023-10-22bcachefs: Tweak journal reclaim orderKent Overstreet1-1/+8
2023-10-22bcachefs: Make sure BCH_FS_FSCK_DONE gets setKent Overstreet1-1/+11
2023-10-22bcachefs: Fix race between btree updates & journal replayKent Overstreet1-2/+23
2023-10-22bcachefs: bch2_journal_entry_to_text()Kent Overstreet1-7/+4
2023-10-22bcachefs: Journal replay does't resort main list of keysKent Overstreet1-23/+44
2023-10-22bcachefs: Run scan_old_btree_nodes after version upgradeKent Overstreet1-21/+20
2023-10-22bcachefs: Delete some obsolete journal_seq_blacklist codeKent Overstreet1-15/+11
2023-10-22bcachefs: bch2_journal_key_insert() no longer transfers ownershipKent Overstreet1-14/+21
2023-10-22bcachefs: Don't start allocator threads too earlyKent Overstreet1-1/+8
2023-10-22bcachefs: bch2_bucket_alloc_new_fs() no longer depends on bucket marksKent Overstreet1-3/+0
2023-10-22bcachefs: Rewrite bch2_bucket_alloc_new_fs()Kent Overstreet1-0/+2
2023-10-22bcachefs: bch2_alloc_write()Kent Overstreet1-1/+1
2023-10-22bcachefs: Split out struct gc_stripe from struct stripeKent Overstreet1-2/+1
2023-10-22bcachefs: Fix error reporting from bch2_journal_flush_seqKent Overstreet1-1/+1
2023-10-22bcachefs: Also log device name in userspaceKent Overstreet1-1/+2
2023-10-22bcachefs: Refactor journal replay codeKent Overstreet1-36/+17
2023-10-22bcachefs: Add journal_seq to inode & alloc keysKent Overstreet1-2/+5
2023-10-22bcachefs: Convert bch2_mark_key() to take a btree_trans *Kent Overstreet1-5/+7
2023-10-22bcachefs: Don't do upgrades in nochanges modeKent Overstreet1-9/+11
2023-10-22bcachefs: Subvol dirents are now only visible in parent subvolKent Overstreet1-2/+2
2023-10-22bcachefs: New on disk format to fix reflink_p pointersKent Overstreet1-5/+3
2023-10-22bcachefs: Rev the on disk format version for snapshotsKent Overstreet1-13/+8
2023-10-22bcachefs: Snapshot creation, deletionKent Overstreet1-1/+1