mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 06:31:58 +02:00
bcachefs: BCH_FS_recovery_running
If we're autofixing topology errors, we shouldn't shutdown if we're still in recovery. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
124e108185
commit
9963a14da1
|
|
@ -614,6 +614,7 @@ struct bch_dev {
|
|||
x(going_ro) \
|
||||
x(write_disable_complete) \
|
||||
x(clean_shutdown) \
|
||||
x(recovery_running) \
|
||||
x(fsck_running) \
|
||||
x(initial_gc_unfixed) \
|
||||
x(need_delete_dead_snapshots) \
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ bool bch2_inconsistent_error(struct bch_fs *c)
|
|||
int bch2_topology_error(struct bch_fs *c)
|
||||
{
|
||||
set_bit(BCH_FS_topology_error, &c->flags);
|
||||
if (!test_bit(BCH_FS_fsck_running, &c->flags)) {
|
||||
if (!test_bit(BCH_FS_recovery_running, &c->flags)) {
|
||||
bch2_inconsistent_error(c);
|
||||
return -BCH_ERR_btree_need_topology_repair;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -774,6 +774,7 @@ int bch2_fs_recovery(struct bch_fs *c)
|
|||
set_bit(BCH_FS_fsck_running, &c->flags);
|
||||
if (c->sb.clean)
|
||||
set_bit(BCH_FS_clean_recovery, &c->flags);
|
||||
set_bit(BCH_FS_recovery_running, &c->flags);
|
||||
|
||||
ret = bch2_blacklist_table_initialize(c);
|
||||
if (ret) {
|
||||
|
|
@ -925,6 +926,7 @@ int bch2_fs_recovery(struct bch_fs *c)
|
|||
*/
|
||||
set_bit(BCH_FS_may_go_rw, &c->flags);
|
||||
clear_bit(BCH_FS_fsck_running, &c->flags);
|
||||
clear_bit(BCH_FS_recovery_running, &c->flags);
|
||||
|
||||
/* in case we don't run journal replay, i.e. norecovery mode */
|
||||
set_bit(BCH_FS_accounting_replay_done, &c->flags);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user