diff --git a/fs/bcachefs/recovery.c b/fs/bcachefs/recovery.c index ddfba16a2998..f00e327d4d35 100644 --- a/fs/bcachefs/recovery.c +++ b/fs/bcachefs/recovery.c @@ -214,11 +214,6 @@ int bch2_fs_recovery(struct bch_fs *c) set_bit(BCH_FS_ALLOC_READ_DONE, &c->flags); - err = "cannot allocate memory"; - ret = bch2_fs_ec_start(c); - if (ret) - goto err; - bch_verbose(c, "starting mark and sweep:"); err = "error in recovery"; ret = bch2_initial_gc(c, &journal); @@ -279,6 +274,11 @@ int bch2_fs_recovery(struct bch_fs *c) bch_verbose(c, "quotas done"); } + err = "cannot allocate memory"; + ret = bch2_fs_ec_start(c); + if (ret) + goto err; + out: bch2_journal_entries_free(&journal); kfree(clean);