Lines Matching refs:c
23 struct cache_set *c = container_of(buf, struct cache_set, in moving_pred() local
28 if (ptr_available(c, k, i) && in moving_pred()
29 GC_MOVE(PTR_BUCKET(c, k, i))) in moving_pred()
56 bch_keybuf_del(&io->op.c->moving_gc_keys, io->w); in write_moving_finish()
58 up(&io->op.c->moving_in_flight); in write_moving_finish()
72 ptr_stale(io->op.c, &b->key, 0)) { in read_moving_endio()
76 bch_bbio_endio(io->op.c, bio, error, "reading data to move"); in read_moving_endio()
124 bch_submit_bbio(bio, io->op.c, &io->w->key, 0); in read_moving_submit()
129 static void read_moving(struct cache_set *c) in read_moving() argument
140 while (!test_bit(CACHE_SET_STOPPING, &c->flags)) { in read_moving()
141 w = bch_keybuf_next_rescan(c, &c->moving_gc_keys, in read_moving()
146 if (ptr_stale(c, &w->key, 0)) { in read_moving()
147 bch_keybuf_del(&c->moving_gc_keys, w); in read_moving()
160 io->op.c = c; in read_moving()
161 io->op.wq = c->moving_gc_wq; in read_moving()
174 down(&c->moving_in_flight); in read_moving()
182 bch_keybuf_del(&c->moving_gc_keys, w); in read_moving()
199 void bch_moving_gc(struct cache_set *c) in bch_moving_gc() argument
205 if (!c->copy_gc_enabled) in bch_moving_gc()
208 mutex_lock(&c->bucket_lock); in bch_moving_gc()
210 for_each_cache(ca, c, i) { in bch_moving_gc()
245 mutex_unlock(&c->bucket_lock); in bch_moving_gc()
247 c->moving_gc_keys.last_scanned = ZERO_KEY; in bch_moving_gc()
249 read_moving(c); in bch_moving_gc()
252 void bch_moving_init_cache_set(struct cache_set *c) in bch_moving_init_cache_set() argument
254 bch_keybuf_init(&c->moving_gc_keys); in bch_moving_init_cache_set()
255 sema_init(&c->moving_in_flight, 64); in bch_moving_init_cache_set()