/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _BCACHEFS_RECOVERY_PASSES_TYPES_H #define _BCACHEFS_RECOVERY_PASSES_TYPES_H struct bch_fs_recovery { /* * Two different uses: * "Has this fsck pass?" - i.e. should this type of error be an * emergency read-only * And, in certain situations fsck will rewind to an earlier pass: used * for signaling to the toplevel code which pass we want to run now. */ enum bch_recovery_pass curr_pass; enum bch_recovery_pass next_pass; /* never rewinds version of curr_pass */ enum bch_recovery_pass pass_done; u64 passes_to_run; /* bitmask of recovery passes that we actually ran */ u64 passes_complete; u64 passes_failing; u64 passes_ratelimiting; spinlock_t lock; struct semaphore run_lock; struct work_struct work; }; #endif /* _BCACHEFS_RECOVERY_PASSES_TYPES_H */