Lines Matching refs:op

58 	struct data_insert_op *op = container_of(cl, struct data_insert_op, cl);  in bch_data_insert_keys()  local
60 struct bkey *replace_key = op->replace ? &op->replace_key : NULL; in bch_data_insert_keys()
75 if (!op->replace) in bch_data_insert_keys()
76 journal_ref = bch_journal(op->c, &op->insert_keys, in bch_data_insert_keys()
77 op->flush_journal ? cl : NULL); in bch_data_insert_keys()
79 ret = bch_btree_insert(op->c, &op->insert_keys, in bch_data_insert_keys()
82 op->replace_collision = true; in bch_data_insert_keys()
84 op->error = -ENOMEM; in bch_data_insert_keys()
85 op->insert_data_done = true; in bch_data_insert_keys()
91 if (!op->insert_data_done) { in bch_data_insert_keys()
92 continue_at(cl, bch_data_insert_start, op->wq); in bch_data_insert_keys()
96 bch_keylist_free(&op->insert_keys); in bch_data_insert_keys()
120 struct data_insert_op *op = container_of(cl, struct data_insert_op, cl); in bch_data_invalidate() local
121 struct bio *bio = op->bio; in bch_data_invalidate()
130 if (bch_keylist_realloc(&op->insert_keys, 2, op->c)) in bch_data_invalidate()
136 bch_keylist_add(&op->insert_keys, in bch_data_invalidate()
137 &KEY(op->inode, bio->bi_iter.bi_sector, sectors)); in bch_data_invalidate()
140 op->insert_data_done = true; in bch_data_invalidate()
143 continue_at(cl, bch_data_insert_keys, op->wq); in bch_data_invalidate()
148 struct data_insert_op *op = container_of(cl, struct data_insert_op, cl); in bch_data_insert_error() local
159 struct bkey *src = op->insert_keys.keys, *dst = op->insert_keys.keys; in bch_data_insert_error()
161 while (src != op->insert_keys.top) { in bch_data_insert_error()
171 op->insert_keys.top = dst; in bch_data_insert_error()
179 struct data_insert_op *op = container_of(cl, struct data_insert_op, cl); in bch_data_insert_endio() local
183 if (op->writeback) in bch_data_insert_endio()
184 op->error = bio->bi_error; in bch_data_insert_endio()
185 else if (!op->replace) in bch_data_insert_endio()
186 set_closure_fn(cl, bch_data_insert_error, op->wq); in bch_data_insert_endio()
191 bch_bbio_endio(op->c, bio, bio->bi_error, "writing data to cache"); in bch_data_insert_endio()
196 struct data_insert_op *op = container_of(cl, struct data_insert_op, cl); in bch_data_insert_start() local
197 struct bio *bio = op->bio, *n; in bch_data_insert_start()
199 if (atomic_sub_return(bio_sectors(bio), &op->c->sectors_to_gc) < 0) { in bch_data_insert_start()
200 set_gc_sectors(op->c); in bch_data_insert_start()
201 wake_up_gc(op->c); in bch_data_insert_start()
204 if (op->bypass) in bch_data_insert_start()
216 struct bio_set *split = op->c->bio_split; in bch_data_insert_start()
219 if (bch_keylist_realloc(&op->insert_keys, in bch_data_insert_start()
220 3 + (op->csum ? 1 : 0), in bch_data_insert_start()
221 op->c)) { in bch_data_insert_start()
222 continue_at(cl, bch_data_insert_keys, op->wq); in bch_data_insert_start()
226 k = op->insert_keys.top; in bch_data_insert_start()
228 SET_KEY_INODE(k, op->inode); in bch_data_insert_start()
231 if (!bch_alloc_sectors(op->c, k, bio_sectors(bio), in bch_data_insert_start()
232 op->write_point, op->write_prio, in bch_data_insert_start()
233 op->writeback)) in bch_data_insert_start()
241 if (op->writeback) { in bch_data_insert_start()
245 SET_GC_MARK(PTR_BUCKET(op->c, k, i), in bch_data_insert_start()
249 SET_KEY_CSUM(k, op->csum); in bch_data_insert_start()
254 bch_keylist_push(&op->insert_keys); in bch_data_insert_start()
257 bch_submit_bbio(n, op->c, k, 0); in bch_data_insert_start()
260 op->insert_data_done = true; in bch_data_insert_start()
261 continue_at(cl, bch_data_insert_keys, op->wq); in bch_data_insert_start()
265 BUG_ON(op->writeback); in bch_data_insert_start()
273 if (!op->replace) { in bch_data_insert_start()
280 op->bypass = true; in bch_data_insert_start()
287 op->insert_data_done = true; in bch_data_insert_start()
290 if (!bch_keylist_empty(&op->insert_keys)) in bch_data_insert_start()
291 continue_at(cl, bch_data_insert_keys, op->wq); in bch_data_insert_start()
318 struct data_insert_op *op = container_of(cl, struct data_insert_op, cl); in bch_data_insert() local
320 trace_bcache_write(op->c, op->inode, op->bio, in bch_data_insert()
321 op->writeback, op->bypass); in bch_data_insert()
323 bch_keylist_init(&op->insert_keys); in bch_data_insert()
324 bio_get(op->bio); in bch_data_insert()
476 struct btree_op op; member
508 static int cache_lookup_fn(struct btree_op *op, struct btree *b, struct bkey *k) in cache_lookup_fn() argument
510 struct search *s = container_of(op, struct search, op); in cache_lookup_fn()
579 bch_btree_op_init(&s->op, -1); in cache_lookup()
581 ret = bch_btree_map_keys(&s->op, s->iop.c, in cache_lookup()
811 ret = bch_btree_insert_check_key(b, &s->op, &s->iop.replace_key); in cached_dev_cache_miss()