summaryrefslogtreecommitdiff
path: root/libbcachefs/btree_io.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbcachefs/btree_io.c')
-rw-r--r--libbcachefs/btree_io.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/libbcachefs/btree_io.c b/libbcachefs/btree_io.c
index d50e9e8e..38c373c6 100644
--- a/libbcachefs/btree_io.c
+++ b/libbcachefs/btree_io.c
@@ -146,9 +146,7 @@ static inline void sort_iter_advance(struct sort_iter *iter, sort_cmp_fn cmp)
BUG_ON(iter->data->k > iter->data->end);
if (iter->data->k == iter->data->end)
- memmove(&iter->data[0],
- &iter->data[1],
- sizeof(iter->data[0]) * --iter->used);
+ array_remove_item(iter->data, iter->used, 0);
else
sort_iter_sift(iter, cmp);
}
@@ -1307,6 +1305,8 @@ static void btree_node_read_endio(struct bio *bio)
struct btree_read_bio *rb =
container_of(bio, struct btree_read_bio, bio);
+ bch2_latency_acct(rb->pick.ca, rb->start_time >> 10, READ);
+
INIT_WORK(&rb->work, btree_node_read_work);
schedule_work(&rb->work);
}
@@ -1471,6 +1471,8 @@ static void btree_node_write_endio(struct bio *bio)
struct bch_fs *c = wbio->c;
struct bch_dev *ca = wbio->ca;
+ bch2_latency_acct(ca, wbio->submit_time_us, WRITE);
+
if (bch2_dev_io_err_on(bio->bi_error, ca, "btree write") ||
bch2_meta_write_fault("btree"))
set_bit(wbio->ptr_idx, (unsigned long *) &orig->replicas_failed);