Lines Matching full:acc
74 struct bkey_i_accounting *acc = bkey_accounting_init(k); in accounting_key_init() local
76 acc->k.p = disk_accounting_pos_to_bpos(pos); in accounting_key_init()
77 set_bkey_val_u64s(&acc->k, sizeof(struct bch_accounting) / sizeof(u64) + nr); in accounting_key_init()
79 memcpy_u64s_small(acc->v.d, d, nr); in accounting_key_init()
117 struct disk_accounting_pos acc = { in bch2_mod_dev_cached_sectors() local
121 bch2_replicas_entry_cached(&acc.replicas, dev); in bch2_mod_dev_cached_sectors()
123 return bch2_disk_accounting_mod(trans, &acc, §ors, 1, gc); in bch2_mod_dev_cached_sectors()
238 struct bkey_s_c_accounting acc = bkey_s_c_to_accounting(k); in bch2_accounting_to_text() local
245 prt_printf(out, " %lli", acc.v->d[i]); in bch2_accounting_to_text()
257 struct disk_accounting_pos *acc) in __accounting_to_replicas() argument
259 unsafe_memcpy(r, &acc->replicas, in __accounting_to_replicas()
260 replicas_entry_bytes(&acc->replicas), in __accounting_to_replicas()
306 struct bch_accounting_mem *acc = &c->accounting; in __bch2_accounting_mem_insert() local
309 if (eytzinger0_find(acc->k.data, acc->k.nr, sizeof(acc->k.data[0]), in __bch2_accounting_mem_insert()
310 accounting_pos_cmp, &a.k->p) < acc->k.nr) in __bch2_accounting_mem_insert()
324 if (acc->gc_running) { in __bch2_accounting_mem_insert()
331 if (darray_push(&acc->k, n)) in __bch2_accounting_mem_insert()
334 eytzinger0_sort(acc->k.data, acc->k.nr, sizeof(acc->k.data[0]), in __bch2_accounting_mem_insert()
381 struct bch_accounting_mem *acc = &c->accounting; in bch2_accounting_mem_gc() local
384 struct accounting_mem_entry *dst = acc->k.data; in bch2_accounting_mem_gc()
386 darray_for_each(acc->k, src) { in bch2_accounting_mem_gc()
395 acc->k.nr = dst - acc->k.data; in bch2_accounting_mem_gc()
396 eytzinger0_sort(acc->k.data, acc->k.nr, sizeof(acc->k.data[0]), in bch2_accounting_mem_gc()
411 struct bch_accounting_mem *acc = &c->accounting; in bch2_fs_replicas_usage_read() local
417 darray_for_each(acc->k, i) { in bch2_fs_replicas_usage_read()
427 bch2_accounting_mem_read_counters(acc, i - acc->k.data, §ors, 1, false); in bch2_fs_replicas_usage_read()
447 struct bch_accounting_mem *acc = &c->accounting; in bch2_fs_accounting_read() local
453 darray_for_each(acc->k, i) { in bch2_fs_accounting_read()
469 bch2_accounting_mem_read_counters(acc, i - acc->k.data, in bch2_fs_accounting_read()
483 static void bch2_accounting_free_counters(struct bch_accounting_mem *acc, bool gc) in bch2_accounting_free_counters() argument
485 darray_for_each(acc->k, e) { in bch2_accounting_free_counters()
493 struct bch_accounting_mem *acc = &c->accounting; in bch2_gc_accounting_start() local
497 darray_for_each(acc->k, e) { in bch2_gc_accounting_start()
501 bch2_accounting_free_counters(acc, true); in bch2_gc_accounting_start()
507 acc->gc_running = !ret; in bch2_gc_accounting_start()
515 struct bch_accounting_mem *acc = &c->accounting; in bch2_gc_accounting_done() local
523 unsigned idx = eytzinger0_find_ge(acc->k.data, acc->k.nr, sizeof(acc->k.data[0]), in bch2_gc_accounting_done()
526 if (idx >= acc->k.nr) in bch2_gc_accounting_done()
529 struct accounting_mem_entry *e = acc->k.data + idx; in bch2_gc_accounting_done()
542 bch2_accounting_mem_read_counters(acc, idx, dst_v, nr, false); in bch2_gc_accounting_done()
543 bch2_accounting_mem_read_counters(acc, idx, src_v, nr, true); in bch2_gc_accounting_done()
611 struct disk_accounting_pos acc, in bch2_disk_accounting_validate_late() argument
618 switch (acc.type) { in bch2_disk_accounting_validate_late()
621 __accounting_to_replicas(&r.e, &acc); in bch2_disk_accounting_validate_late()
640 bch2_accounting_key_to_text(&buf, &acc), in bch2_disk_accounting_validate_late()
656 if (!bch2_dev_exists(c, acc.dev_data_type.dev)) { in bch2_disk_accounting_validate_late()
657 invalid_dev = acc.dev_data_type.dev; in bch2_disk_accounting_validate_late()
671 bch2_accounting_key_to_text(&buf, &acc), in bch2_disk_accounting_validate_late()
677 bch2_disk_accounting_mod(trans, &acc, v, nr, false)) ?: in bch2_disk_accounting_validate_late()
691 struct bch_accounting_mem *acc = &c->accounting; in bch2_accounting_read() local
703 darray_for_each(acc->k, e) in bch2_accounting_read()
752 unsigned idx = eytzinger0_find(acc->k.data, acc->k.nr, in bch2_accounting_read()
753 sizeof(acc->k.data[0]), in bch2_accounting_read()
756 bool applied = idx < acc->k.nr && in bch2_accounting_read()
757 bversion_cmp(acc->k.data[idx].bversion, k.k->bversion) >= 0; in bch2_accounting_read()
785 darray_for_each_reverse(acc->k, i) { in bch2_accounting_read()
809 darray_remove_item(&acc->k, i); in bch2_accounting_read()
818 eytzinger0_sort(acc->k.data, acc->k.nr, sizeof(acc->k.data[0]), in bch2_accounting_read()
824 for (unsigned i = 0; i < acc->k.nr; i++) { in bch2_accounting_read()
826 bpos_to_disk_accounting_pos(&k, acc->k.data[i].pos); in bch2_accounting_read()
829 bch2_accounting_mem_read_counters(acc, i, v, ARRAY_SIZE(v), false); in bch2_accounting_read()
871 struct disk_accounting_pos acc; in bch2_dev_usage_remove()
872 bpos_to_disk_accounting_pos(&acc, k.k->p); in bch2_dev_usage_remove()
874 acc.type == BCH_DISK_ACCOUNTING_dev_data_type && in bch2_dev_usage_remove()
875 acc.dev_data_type.dev == dev in bch2_dev_usage_remove()
885 struct disk_accounting_pos acc = { in bch2_dev_usage_init() local
893 bch2_disk_accounting_mod(trans, &acc, v, ARRAY_SIZE(v), gc) ?: in bch2_dev_usage_init()
1000 struct bch_accounting_mem *acc = &c->accounting; in bch2_accounting_gc_free() local
1002 bch2_accounting_free_counters(acc, true); in bch2_accounting_gc_free()
1003 acc->gc_running = false; in bch2_accounting_gc_free()
1008 struct bch_accounting_mem *acc = &c->accounting; in bch2_fs_accounting_exit() local
1010 bch2_accounting_free_counters(acc, false); in bch2_fs_accounting_exit()
1011 darray_exit(&acc->k); in bch2_fs_accounting_exit()