Lines Matching refs:io

39 	struct moving_io *io = container_of(cl, struct moving_io, cl);  in moving_io_destructor()  local
40 kfree(io); in moving_io_destructor()
45 struct moving_io *io = container_of(cl, struct moving_io, cl); in write_moving_finish() local
46 struct bio *bio = &io->bio.bio; in write_moving_finish()
53 if (io->op.replace_collision) in write_moving_finish()
54 trace_bcache_gc_copy_collision(&io->w->key); in write_moving_finish()
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()
66 struct moving_io *io = container_of(bio->bi_private, in read_moving_endio() local
70 io->op.error = error; in read_moving_endio()
72 ptr_stale(io->op.c, &b->key, 0)) { in read_moving_endio()
73 io->op.error = -EINTR; in read_moving_endio()
76 bch_bbio_endio(io->op.c, bio, error, "reading data to move"); in read_moving_endio()
79 static void moving_init(struct moving_io *io) in moving_init() argument
81 struct bio *bio = &io->bio.bio; in moving_init()
87 bio->bi_iter.bi_size = KEY_SIZE(&io->w->key) << 9; in moving_init()
88 bio->bi_max_vecs = DIV_ROUND_UP(KEY_SIZE(&io->w->key), in moving_init()
90 bio->bi_private = &io->cl; in moving_init()
97 struct moving_io *io = container_of(cl, struct moving_io, cl); in write_moving() local
98 struct data_insert_op *op = &io->op; in write_moving()
101 moving_init(io); in write_moving()
103 io->bio.bio.bi_iter.bi_sector = KEY_START(&io->w->key); in write_moving()
105 op->bio = &io->bio.bio; in write_moving()
107 op->writeback = KEY_DIRTY(&io->w->key); in write_moving()
108 op->csum = KEY_CSUM(&io->w->key); in write_moving()
110 bkey_copy(&op->replace_key, &io->w->key); in write_moving()
121 struct moving_io *io = container_of(cl, struct moving_io, cl); in read_moving_submit() local
122 struct bio *bio = &io->bio.bio; in read_moving_submit()
124 bch_submit_bbio(bio, io->op.c, &io->w->key, 0); in read_moving_submit()
126 continue_at(cl, write_moving, io->op.wq); in read_moving_submit()
132 struct moving_io *io; in read_moving() local
151 io = kzalloc(sizeof(struct moving_io) + sizeof(struct bio_vec) in read_moving()
154 if (!io) in read_moving()
157 w->private = io; in read_moving()
158 io->w = w; in read_moving()
159 io->op.inode = KEY_INODE(&w->key); in read_moving()
160 io->op.c = c; in read_moving()
161 io->op.wq = c->moving_gc_wq; in read_moving()
163 moving_init(io); in read_moving()
164 bio = &io->bio.bio; in read_moving()
175 closure_call(&io->cl, read_moving_submit, NULL, &cl); in read_moving()