Lines Matching defs:tio

83 	struct dm_rq_target_io *tio = info->tio;
90 if (tio->error)
103 tio->error = error;
111 tio->completed += nr_bytes;
120 blk_update_request(tio->orig, BLK_STS_OK, tio->completed);
131 struct dm_rq_target_io *tio = tio_from_request(orig);
132 tio->duration_jiffies = jiffies - tio->duration_jiffies;
134 blk_rq_pos(orig), tio->n_sectors, true,
135 tio->duration_jiffies, &tio->stats_aux);
159 struct dm_rq_target_io *tio = clone->end_io_data;
160 struct mapped_device *md = tio->md;
161 struct request *rq = tio->orig;
164 tio->ti->type->release_clone_rq(clone, NULL);
188 static void dm_requeue_original_request(struct dm_rq_target_io *tio, bool delay_requeue)
190 struct mapped_device *md = tio->md;
191 struct request *rq = tio->orig;
195 if (tio->clone) {
196 blk_rq_unprep_clone(tio->clone);
197 tio->ti->type->release_clone_rq(tio->clone, NULL);
207 struct dm_rq_target_io *tio = clone->end_io_data;
210 if (tio->ti) {
211 rq_end_io = tio->ti->type->rq_end_io;
214 r = rq_end_io(tio->ti, clone, error, &tio->info);
220 disable_discard(tio->md);
223 disable_write_same(tio->md);
226 disable_write_zeroes(tio->md);
239 dm_requeue_original_request(tio, false);
243 dm_requeue_original_request(tio, true);
257 struct dm_rq_target_io *tio = tio_from_request(rq);
258 struct request *clone = tio->clone;
261 struct mapped_device *md = tio->md;
264 blk_mq_end_request(rq, tio->error);
272 dm_done(clone, tio->error, mapped);
281 struct dm_rq_target_io *tio = tio_from_request(rq);
283 tio->error = error;
302 struct dm_rq_target_io *tio = clone->end_io_data;
304 dm_complete_request(tio->orig, error);
325 struct dm_rq_target_io *tio = data;
330 info->tio = tio;
337 struct dm_rq_target_io *tio, gfp_t gfp_mask)
341 r = blk_rq_prep_clone(clone, rq, &tio->md->bs, gfp_mask,
342 dm_rq_bio_constructor, tio);
347 clone->end_io_data = tio;
349 tio->clone = clone;
354 static void init_tio(struct dm_rq_target_io *tio, struct request *rq,
357 tio->md = md;
358 tio->ti = NULL;
359 tio->clone = NULL;
360 tio->orig = rq;
361 tio->error = 0;
362 tio->completed = 0;
369 memset(&tio->info, 0, sizeof(tio->info));
378 static int map_request(struct dm_rq_target_io *tio)
381 struct dm_target *ti = tio->ti;
382 struct mapped_device *md = tio->md;
383 struct request *rq = tio->orig;
387 r = ti->type->clone_and_map_rq(ti, rq, &tio->info, &clone);
393 if (setup_clone(clone, rq, tio, GFP_ATOMIC)) {
395 ti->type->release_clone_rq(clone, &tio->info);
406 tio->ti->type->release_clone_rq(clone, &tio->info);
407 tio->clone = NULL;
416 dm_requeue_original_request(tio, true);
447 struct dm_rq_target_io *tio = tio_from_request(orig);
448 tio->duration_jiffies = jiffies;
449 tio->n_sectors = blk_rq_sectors(orig);
451 blk_rq_pos(orig), tio->n_sectors, false, 0,
452 &tio->stats_aux);
469 struct dm_rq_target_io *tio = blk_mq_rq_to_pdu(rq);
472 * Must initialize md member of tio, otherwise it won't
475 tio->md = md;
478 /* target-specific per-io data is immediately after the tio */
479 tio->info.ptr = tio + 1;
489 struct dm_rq_target_io *tio = blk_mq_rq_to_pdu(rq);
490 struct mapped_device *md = tio->md;
511 /* Init tio using md established in .init_request */
512 init_tio(tio, rq, md);
515 * Establish tio->ti before calling map_request().
517 tio->ti = ti;
520 if (map_request(tio) == DM_MAPIO_REQUEUE) {
556 /* any target-specific per-io data is immediately after the tio */