mirror of
https://github.com/koverstreet/bcachefs-tools.git
synced 2025-02-22 00:00:03 +03:00
Update bcachefs sources to 0939e1c732 fixup! bcachefs: Rework lru btree
This commit is contained in:
parent
177f05106c
commit
e314b39c63
@ -1 +1 @@
|
||||
2e8463c770e9f1e2269e0fc9f64d044424758f4f
|
||||
0939e1c73231c779c961e1143e1ba489ef2b168c
|
||||
|
@ -920,9 +920,6 @@ int bch2_trans_mark_alloc(struct btree_trans *trans,
|
||||
old_lru, new_lru);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (new_a->data_type == BCH_DATA_cached)
|
||||
new_a->io_time[READ] = new_lru;
|
||||
}
|
||||
|
||||
if (old_a->gen != new_a->gen) {
|
||||
@ -1512,7 +1509,6 @@ static int bch2_check_alloc_to_lru_ref(struct btree_trans *trans,
|
||||
const struct bch_alloc_v4 *a;
|
||||
struct bkey_s_c alloc_k, k;
|
||||
struct printbuf buf = PRINTBUF;
|
||||
struct printbuf buf2 = PRINTBUF;
|
||||
int ret;
|
||||
|
||||
alloc_k = bch2_btree_iter_peek(alloc_iter);
|
||||
@ -1529,8 +1525,9 @@ static int bch2_check_alloc_to_lru_ref(struct btree_trans *trans,
|
||||
return 0;
|
||||
|
||||
bch2_trans_iter_init(trans, &lru_iter, BTREE_ID_lru,
|
||||
POS(alloc_k.k->p.inode, a->io_time[READ]), 0);
|
||||
|
||||
lru_pos(alloc_k.k->p.inode,
|
||||
bucket_to_u64(alloc_k.k->p),
|
||||
a->io_time[READ]), 0);
|
||||
k = bch2_btree_iter_peek_slot(&lru_iter);
|
||||
ret = bkey_err(k);
|
||||
if (ret)
|
||||
@ -1541,14 +1538,11 @@ static int bch2_check_alloc_to_lru_ref(struct btree_trans *trans,
|
||||
" %s",
|
||||
(printbuf_reset(&buf),
|
||||
bch2_bkey_val_to_text(&buf, c, alloc_k), buf.buf)) ||
|
||||
fsck_err_on(k.k->type != KEY_TYPE_set ||
|
||||
le64_to_cpu(bkey_s_c_to_lru(k).v->idx) != alloc_k.k->p.offset, c,
|
||||
"incorrect/missing lru entry\n"
|
||||
" %s\n"
|
||||
fsck_err_on(k.k->type != KEY_TYPE_set, c,
|
||||
"missing lru entry\n"
|
||||
" %s",
|
||||
(printbuf_reset(&buf),
|
||||
bch2_bkey_val_to_text(&buf, c, alloc_k), buf.buf),
|
||||
(bch2_bkey_val_to_text(&buf2, c, k), buf2.buf))) {
|
||||
bch2_bkey_val_to_text(&buf, c, alloc_k), buf.buf))) {
|
||||
u64 read_time = a->io_time[READ] ?:
|
||||
atomic64_read(&c->io_clock[READ].now);
|
||||
|
||||
@ -1576,7 +1570,6 @@ static int bch2_check_alloc_to_lru_ref(struct btree_trans *trans,
|
||||
err:
|
||||
fsck_err:
|
||||
bch2_trans_iter_exit(trans, &lru_iter);
|
||||
printbuf_exit(&buf2);
|
||||
printbuf_exit(&buf);
|
||||
return ret;
|
||||
}
|
||||
|
@ -58,7 +58,7 @@ static int __bch2_lru_set(struct btree_trans *trans, u16 lru_id,
|
||||
k->k.p, BTREE_ITER_INTENT);
|
||||
|
||||
ret = bch2_btree_iter_traverse(&iter) ?:
|
||||
bch2_btree_delete_at(trans, &iter, 0);
|
||||
bch2_trans_update(trans, &iter, k, 0);
|
||||
bch2_trans_iter_exit(trans, &iter);
|
||||
return ret;
|
||||
}
|
||||
@ -111,11 +111,12 @@ static int bch2_check_lru_key(struct btree_trans *trans,
|
||||
|
||||
a = bch2_alloc_to_v4(k, &a_convert);
|
||||
|
||||
if (fsck_err_on(k.k->type != KEY_TYPE_set ||
|
||||
if (fsck_err_on(lru_k.k->type != KEY_TYPE_set ||
|
||||
a->data_type != BCH_DATA_cached ||
|
||||
a->io_time[READ] != lru_k.k->p.offset, c,
|
||||
"incorrect lru entry %s\n"
|
||||
a->io_time[READ] != lru_pos_time(lru_k.k->p), c,
|
||||
"incorrect lru entry (time %llu) %s\n"
|
||||
" for %s",
|
||||
lru_pos_time(lru_k.k->p),
|
||||
(bch2_bkey_val_to_text(&buf1, c, lru_k), buf1.buf),
|
||||
(bch2_bkey_val_to_text(&buf2, c, k), buf2.buf))) {
|
||||
ret = bch2_btree_delete_at(trans, lru_iter, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user