Lines Matching refs:ca

35 static int journal_read_bucket(struct cache *ca, struct list_head *list,  in journal_read_bucket()  argument
38 struct journal_device *ja = &ca->journal; in journal_read_bucket()
42 struct jset *j, *data = ca->set->journal.w[0].data; in journal_read_bucket()
46 sector_t bucket = bucket_to_sector(ca->set, ca->sb.d[bucket_index]); in journal_read_bucket()
52 while (offset < ca->sb.bucket_size) { in journal_read_bucket()
53 reread: left = ca->sb.bucket_size - offset; in journal_read_bucket()
58 bio_set_dev(bio, ca->bdev); in journal_read_bucket()
66 closure_bio_submit(ca->set, bio, &cl); in journal_read_bucket()
80 if (j->magic != jset_magic(&ca->sb)) { in journal_read_bucket()
101 blocks = set_blocks(j, block_bytes(ca->set)); in journal_read_bucket()
162 offset += blocks * ca->sb.block_size; in journal_read_bucket()
163 len -= blocks * ca->sb.block_size; in journal_read_bucket()
164 j = ((void *) j) + blocks * block_bytes(ca); in journal_read_bucket()
175 ret = journal_read_bucket(ca, list, b); \ in bch_journal_read()
182 struct cache *ca; in bch_journal_read() local
186 for_each_cache(ca, c, iter) { in bch_journal_read()
187 struct journal_device *ja = &ca->journal; in bch_journal_read()
193 pr_debug("%u journal buckets", ca->sb.njournal_buckets); in bch_journal_read()
199 for (i = 0; i < ca->sb.njournal_buckets; i++) { in bch_journal_read()
205 l = (i * 2654435769U) % ca->sb.njournal_buckets; in bch_journal_read()
220 for (l = find_first_zero_bit(bitmap, ca->sb.njournal_buckets); in bch_journal_read()
221 l < ca->sb.njournal_buckets; in bch_journal_read()
222 l = find_next_zero_bit(bitmap, ca->sb.njournal_buckets, in bch_journal_read()
228 if (l == ca->sb.njournal_buckets) in bch_journal_read()
235 r = find_next_bit(bitmap, ca->sb.njournal_buckets, l + 1); in bch_journal_read()
257 m, ca->sb.njournal_buckets); in bch_journal_read()
262 l = ca->sb.njournal_buckets - 1; in bch_journal_read()
276 for (i = 0; i < ca->sb.njournal_buckets; i++) in bch_journal_read()
286 ca->sb.njournal_buckets; in bch_journal_read()
348 struct cache *ca; in is_discard_enabled() local
351 for_each_cache(ca, s, i) in is_discard_enabled()
352 if (ca->discard) in is_discard_enabled()
511 struct cache *ca = container_of(ja, struct cache, journal); in journal_discard_endio() local
515 closure_wake_up(&ca->set->journal.wait); in journal_discard_endio()
516 closure_put(&ca->set->cl); in journal_discard_endio()
527 static void do_journal_discard(struct cache *ca) in do_journal_discard() argument
529 struct journal_device *ja = &ca->journal; in do_journal_discard()
532 if (!ca->discard) { in do_journal_discard()
543 ca->sb.njournal_buckets; in do_journal_discard()
556 bio->bi_iter.bi_sector = bucket_to_sector(ca->set, in do_journal_discard()
557 ca->sb.d[ja->discard_idx]); in do_journal_discard()
558 bio_set_dev(bio, ca->bdev); in do_journal_discard()
559 bio->bi_iter.bi_size = bucket_bytes(ca); in do_journal_discard()
562 closure_get(&ca->set->cl); in do_journal_discard()
571 struct cache *ca; in journal_reclaim() local
585 for_each_cache(ca, c, iter) { in journal_reclaim()
586 struct journal_device *ja = &ca->journal; in journal_reclaim()
591 ca->sb.njournal_buckets; in journal_reclaim()
594 for_each_cache(ca, c, iter) in journal_reclaim()
595 do_journal_discard(ca); in journal_reclaim()
605 for_each_cache(ca, c, iter) { in journal_reclaim()
606 struct journal_device *ja = &ca->journal; in journal_reclaim()
607 unsigned int next = (ja->cur_idx + 1) % ca->sb.njournal_buckets; in journal_reclaim()
615 bucket_to_sector(c, ca->sb.d[ja->cur_idx]), in journal_reclaim()
616 ca->sb.nr_this_dev); in journal_reclaim()
688 struct cache *ca; in journal_write_unlocked() local
718 for_each_cache(ca, c, i) in journal_write_unlocked()
719 w->data->prio_bucket[ca->sb.nr_this_dev] = ca->prio_buckets[0]; in journal_write_unlocked()
727 ca = PTR_CACHE(c, k, i); in journal_write_unlocked()
728 bio = &ca->journal.bio; in journal_write_unlocked()
730 atomic_long_add(sectors, &ca->meta_sectors_written); in journal_write_unlocked()
734 bio_set_dev(bio, ca->bdev); in journal_write_unlocked()
748 ca->journal.seq[ca->journal.cur_idx] = w->data->seq; in journal_write_unlocked()