bcachefs: Mark recovery passses that are safe to run online
authorKent Overstreet <kent.overstreet@linux.dev>
Wed, 6 Dec 2023 19:24:26 +0000 (14:24 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Mon, 1 Jan 2024 16:47:40 +0000 (11:47 -0500)
Online fsck is coming, and many of our recovery/fsck passes are already
safe to run while the filesystem is in use - mark which ones.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/recovery_types.h

index d37c6fd30e3849bbc5135d3394536d4910e680fe..6a7debe663b97714f78c6402a1c5eaa515968d0a 100644 (file)
@@ -6,6 +6,7 @@
 #define PASS_FSCK              BIT(1)
 #define PASS_UNCLEAN           BIT(2)
 #define PASS_ALWAYS            BIT(3)
+#define PASS_ONLINE            BIT(4)
 
 /*
  * Passes may be reordered, but the second field is a persistent identifier and
        x(fs_journal_alloc,                      7, PASS_ALWAYS|PASS_SILENT)    \
        x(set_may_go_rw,                         8, PASS_ALWAYS|PASS_SILENT)    \
        x(journal_replay,                        9, PASS_ALWAYS)                \
-       x(check_alloc_info,                     10, PASS_FSCK)                  \
-       x(check_lrus,                           11, PASS_FSCK)                  \
-       x(check_btree_backpointers,             12, PASS_FSCK)                  \
-       x(check_backpointers_to_extents,        13, PASS_FSCK)                  \
-       x(check_extents_to_backpointers,        14, PASS_FSCK)                  \
-       x(check_alloc_to_lru_refs,              15, PASS_FSCK)                  \
+       x(check_alloc_info,                     10, PASS_ONLINE|PASS_FSCK)      \
+       x(check_lrus,                           11, PASS_ONLINE|PASS_FSCK)      \
+       x(check_btree_backpointers,             12, PASS_ONLINE|PASS_FSCK)      \
+       x(check_backpointers_to_extents,        13, PASS_ONLINE|PASS_FSCK)      \
+       x(check_extents_to_backpointers,        14, PASS_ONLINE|PASS_FSCK)      \
+       x(check_alloc_to_lru_refs,              15, PASS_ONLINE|PASS_FSCK)      \
        x(fs_freespace_init,                    16, PASS_ALWAYS|PASS_SILENT)    \
        x(bucket_gens_init,                     17, 0)                          \
-       x(check_snapshot_trees,                 18, PASS_FSCK)                  \
-       x(check_snapshots,                      19, PASS_FSCK)                  \
-       x(check_subvols,                        20, PASS_FSCK)                  \
-       x(delete_dead_snapshots,                21, PASS_FSCK)                  \
+       x(check_snapshot_trees,                 18, PASS_ONLINE|PASS_FSCK)      \
+       x(check_snapshots,                      19, PASS_ONLINE|PASS_FSCK)      \
+       x(check_subvols,                        20, PASS_ONLINE|PASS_FSCK)      \
+       x(delete_dead_snapshots,                21, PASS_ONLINE|PASS_FSCK)      \
        x(fs_upgrade_for_subvolumes,            22, 0)                          \
        x(resume_logged_ops,                    23, PASS_ALWAYS)                \
        x(check_inodes,                         24, PASS_FSCK)                  \