Commit d8a161ad authored by Kent Overstreet's avatar Kent Overstreet Committed by Kent Overstreet

bcachefs: LRU repair tweaks

 - Drop old unneeded parameter for whether we're in initial GC - which
   was from when btree updates had to be done differently before we
   went RW.
Signed-off-by: default avatarKent Overstreet <kent.overstreet@gmail.com>
parent facc8147
...@@ -130,7 +130,7 @@ int bch2_lru_change(struct btree_trans *trans, u64 id, u64 idx, ...@@ -130,7 +130,7 @@ int bch2_lru_change(struct btree_trans *trans, u64 id, u64 idx,
} }
static int bch2_check_lru_key(struct btree_trans *trans, static int bch2_check_lru_key(struct btree_trans *trans,
struct btree_iter *lru_iter, bool initial) struct btree_iter *lru_iter)
{ {
struct bch_fs *c = trans->c; struct bch_fs *c = trans->c;
struct btree_iter iter; struct btree_iter iter;
...@@ -193,7 +193,7 @@ static int bch2_check_lru_key(struct btree_trans *trans, ...@@ -193,7 +193,7 @@ static int bch2_check_lru_key(struct btree_trans *trans,
return ret; return ret;
} }
int bch2_check_lrus(struct bch_fs *c, bool initial) int bch2_check_lrus(struct bch_fs *c)
{ {
struct btree_trans trans; struct btree_trans trans;
struct btree_iter iter; struct btree_iter iter;
...@@ -207,7 +207,7 @@ int bch2_check_lrus(struct bch_fs *c, bool initial) ...@@ -207,7 +207,7 @@ int bch2_check_lrus(struct bch_fs *c, bool initial)
ret = __bch2_trans_do(&trans, NULL, NULL, ret = __bch2_trans_do(&trans, NULL, NULL,
BTREE_INSERT_NOFAIL| BTREE_INSERT_NOFAIL|
BTREE_INSERT_LAZY_RW, BTREE_INSERT_LAZY_RW,
bch2_check_lru_key(&trans, &iter, initial)); bch2_check_lru_key(&trans, &iter));
if (ret) if (ret)
break; break;
} }
......
...@@ -14,6 +14,6 @@ int bch2_lru_delete(struct btree_trans *, u64, u64, u64, struct bkey_s_c); ...@@ -14,6 +14,6 @@ int bch2_lru_delete(struct btree_trans *, u64, u64, u64, struct bkey_s_c);
int bch2_lru_set(struct btree_trans *, u64, u64, u64 *); int bch2_lru_set(struct btree_trans *, u64, u64, u64 *);
int bch2_lru_change(struct btree_trans *, u64, u64, u64, u64 *, struct bkey_s_c); int bch2_lru_change(struct btree_trans *, u64, u64, u64, u64 *, struct bkey_s_c);
int bch2_check_lrus(struct bch_fs *, bool); int bch2_check_lrus(struct bch_fs *);
#endif /* _BCACHEFS_LRU_H */ #endif /* _BCACHEFS_LRU_H */
...@@ -1256,24 +1256,19 @@ int bch2_fs_recovery(struct bch_fs *c) ...@@ -1256,24 +1256,19 @@ int bch2_fs_recovery(struct bch_fs *c)
bch_info(c, "checking lrus"); bch_info(c, "checking lrus");
err = "error checking lrus"; err = "error checking lrus";
ret = bch2_check_lrus(c, true); ret = bch2_check_lrus(c);
if (ret) if (ret)
goto err; goto err;
bch_verbose(c, "done checking lrus"); bch_verbose(c, "done checking lrus");
set_bit(BCH_FS_CHECK_LRUS_DONE, &c->flags); set_bit(BCH_FS_CHECK_LRUS_DONE, &c->flags);
bch_info(c, "checking alloc to lru refs"); bch_info(c, "checking alloc to lru refs");
err = "error checking alloc to lru refs"; err = "error checking alloc to lru refs";
ret = bch2_check_alloc_to_lru_refs(c); ret = bch2_check_alloc_to_lru_refs(c);
if (ret)
goto err;
set_bit(BCH_FS_CHECK_ALLOC_TO_LRU_REFS_DONE, &c->flags);
ret = bch2_check_lrus(c, true);
if (ret) if (ret)
goto err; goto err;
bch_verbose(c, "done checking alloc to lru refs"); bch_verbose(c, "done checking alloc to lru refs");
set_bit(BCH_FS_CHECK_ALLOC_TO_LRU_REFS_DONE, &c->flags);
} else { } else {
set_bit(BCH_FS_MAY_GO_RW, &c->flags); set_bit(BCH_FS_MAY_GO_RW, &c->flags);
set_bit(BCH_FS_INITIAL_GC_DONE, &c->flags); set_bit(BCH_FS_INITIAL_GC_DONE, &c->flags);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment