• Home
  • Raw
  • Download

Lines Matching refs:tio

86 	struct dm_rq_target_io *tio = info->tio;  in end_clone_bio()  local
93 if (tio->error) in end_clone_bio()
106 tio->error = error; in end_clone_bio()
114 tio->completed += nr_bytes; in end_clone_bio()
123 blk_update_request(tio->orig, BLK_STS_OK, tio->completed); in end_clone_bio()
134 struct dm_rq_target_io *tio = tio_from_request(orig); in rq_end_stats() local
135 tio->duration_jiffies = jiffies - tio->duration_jiffies; in rq_end_stats()
137 blk_rq_pos(orig), tio->n_sectors, true, in rq_end_stats()
138 tio->duration_jiffies, &tio->stats_aux); in rq_end_stats()
166 struct dm_rq_target_io *tio = clone->end_io_data; in dm_end_request() local
167 struct mapped_device *md = tio->md; in dm_end_request()
168 struct request *rq = tio->orig; in dm_end_request()
171 tio->ti->type->release_clone_rq(clone, NULL); in dm_end_request()
195 static void dm_requeue_original_request(struct dm_rq_target_io *tio, bool delay_requeue) in dm_requeue_original_request() argument
197 struct mapped_device *md = tio->md; in dm_requeue_original_request()
198 struct request *rq = tio->orig; in dm_requeue_original_request()
202 if (tio->clone) { in dm_requeue_original_request()
203 blk_rq_unprep_clone(tio->clone); in dm_requeue_original_request()
204 tio->ti->type->release_clone_rq(tio->clone, NULL); in dm_requeue_original_request()
214 struct dm_rq_target_io *tio = clone->end_io_data; in dm_done() local
217 if (tio->ti) { in dm_done()
218 rq_end_io = tio->ti->type->rq_end_io; in dm_done()
221 r = rq_end_io(tio->ti, clone, error, &tio->info); in dm_done()
227 disable_discard(tio->md); in dm_done()
230 disable_write_same(tio->md); in dm_done()
233 disable_write_zeroes(tio->md); in dm_done()
246 dm_requeue_original_request(tio, false); in dm_done()
250 dm_requeue_original_request(tio, true); in dm_done()
264 struct dm_rq_target_io *tio = tio_from_request(rq); in dm_softirq_done() local
265 struct request *clone = tio->clone; in dm_softirq_done()
268 struct mapped_device *md = tio->md; in dm_softirq_done()
271 blk_mq_end_request(rq, tio->error); in dm_softirq_done()
279 dm_done(clone, tio->error, mapped); in dm_softirq_done()
288 struct dm_rq_target_io *tio = tio_from_request(rq); in dm_complete_request() local
290 tio->error = error; in dm_complete_request()
308 struct dm_rq_target_io *tio = clone->end_io_data; in end_clone_request() local
310 dm_complete_request(tio->orig, error); in end_clone_request()
331 struct dm_rq_target_io *tio = data; in dm_rq_bio_constructor() local
336 info->tio = tio; in dm_rq_bio_constructor()
343 struct dm_rq_target_io *tio, gfp_t gfp_mask) in setup_clone() argument
347 r = blk_rq_prep_clone(clone, rq, &tio->md->bs, gfp_mask, in setup_clone()
348 dm_rq_bio_constructor, tio); in setup_clone()
353 clone->end_io_data = tio; in setup_clone()
355 tio->clone = clone; in setup_clone()
360 static void init_tio(struct dm_rq_target_io *tio, struct request *rq, in init_tio() argument
363 tio->md = md; in init_tio()
364 tio->ti = NULL; in init_tio()
365 tio->clone = NULL; in init_tio()
366 tio->orig = rq; in init_tio()
367 tio->error = 0; in init_tio()
368 tio->completed = 0; in init_tio()
375 memset(&tio->info, 0, sizeof(tio->info)); in init_tio()
384 static int map_request(struct dm_rq_target_io *tio) in map_request() argument
387 struct dm_target *ti = tio->ti; in map_request()
388 struct mapped_device *md = tio->md; in map_request()
389 struct request *rq = tio->orig; in map_request()
393 r = ti->type->clone_and_map_rq(ti, rq, &tio->info, &clone); in map_request()
399 if (setup_clone(clone, rq, tio, GFP_ATOMIC)) { in map_request()
401 ti->type->release_clone_rq(clone, &tio->info); in map_request()
412 tio->ti->type->release_clone_rq(clone, &tio->info); in map_request()
413 tio->clone = NULL; in map_request()
422 dm_requeue_original_request(tio, true); in map_request()
453 struct dm_rq_target_io *tio = tio_from_request(orig); in dm_start_request() local
454 tio->duration_jiffies = jiffies; in dm_start_request()
455 tio->n_sectors = blk_rq_sectors(orig); in dm_start_request()
457 blk_rq_pos(orig), tio->n_sectors, false, 0, in dm_start_request()
458 &tio->stats_aux); in dm_start_request()
475 struct dm_rq_target_io *tio = blk_mq_rq_to_pdu(rq); in dm_mq_init_request() local
481 tio->md = md; in dm_mq_init_request()
485 tio->info.ptr = tio + 1; in dm_mq_init_request()
495 struct dm_rq_target_io *tio = blk_mq_rq_to_pdu(rq); in dm_mq_queue_rq() local
496 struct mapped_device *md = tio->md; in dm_mq_queue_rq()
513 init_tio(tio, rq, md); in dm_mq_queue_rq()
518 tio->ti = ti; in dm_mq_queue_rq()
521 if (map_request(tio) == DM_MAPIO_REQUEUE) { in dm_mq_queue_rq()