Lines Matching refs:tio

80 	(offsetof(struct dm_target_io, clone) + offsetof(struct dm_io, tio))
84 struct dm_target_io *tio = container_of(bio, struct dm_target_io, clone); in dm_per_bio_data() local
85 if (!tio->inside_dm_io) in dm_per_bio_data()
480 struct dm_target_io *tio = container_of(bio, struct dm_target_io, clone); in dm_start_time_ns_from_clone() local
481 struct dm_io *io = tio->io; in dm_start_time_ns_from_clone()
519 struct dm_target_io *tio; in alloc_io() local
526 tio = container_of(clone, struct dm_target_io, clone); in alloc_io()
527 tio->inside_dm_io = true; in alloc_io()
528 tio->io = NULL; in alloc_io()
530 io = container_of(tio, struct dm_io, tio); in alloc_io()
545 bio_put(&io->tio.clone); in free_io()
551 struct dm_target_io *tio; in alloc_tio() local
553 if (!ci->io->tio.io) { in alloc_tio()
555 tio = &ci->io->tio; in alloc_tio()
561 tio = container_of(clone, struct dm_target_io, clone); in alloc_tio()
562 tio->inside_dm_io = false; in alloc_tio()
565 tio->magic = DM_TIO_MAGIC; in alloc_tio()
566 tio->io = ci->io; in alloc_tio()
567 tio->ti = ti; in alloc_tio()
568 tio->target_bio_nr = target_bio_nr; in alloc_tio()
570 return tio; in alloc_tio()
573 static void free_tio(struct dm_target_io *tio) in free_tio() argument
575 if (tio->inside_dm_io) in free_tio()
577 bio_put(&tio->clone); in free_tio()
882 struct dm_target_io *tio = container_of(bio, struct dm_target_io, clone); in clone_endio() local
883 struct dm_io *io = tio->io; in clone_endio()
884 struct mapped_device *md = tio->io->md; in clone_endio()
885 dm_endio_fn endio = tio->ti->type->end_io; in clone_endio()
904 int r = endio(tio->ti, bio, &error); in clone_endio()
928 if (unlikely(swap_bios_limit(tio->ti, bio))) { in clone_endio()
933 free_tio(tio); in clone_endio()
1156 struct dm_target_io *tio = container_of(bio, struct dm_target_io, clone); in dm_accept_partial_bio() local
1162 BUG_ON(bi_size > *tio->len_ptr); in dm_accept_partial_bio()
1165 *tio->len_ptr -= bi_size - n_sectors; in dm_accept_partial_bio()
1186 static void __map_bio(struct dm_target_io *tio) in __map_bio() argument
1190 struct bio *clone = &tio->clone; in __map_bio()
1191 struct dm_io *io = tio->io; in __map_bio()
1192 struct dm_target *ti = tio->ti; in __map_bio()
1218 r = dm_zone_map_bio(tio); in __map_bio()
1235 free_tio(tio); in __map_bio()
1243 free_tio(tio); in __map_bio()
1261 static int clone_bio(struct dm_target_io *tio, struct bio *bio, in clone_bio() argument
1264 struct bio *clone = &tio->clone; in clone_bio()
1274 if (unlikely(!dm_target_has_integrity(tio->ti->type) && in clone_bio()
1275 !dm_target_passes_integrity(tio->ti->type))) { in clone_bio()
1277 dm_device_name(tio->io->md), in clone_bio()
1278 tio->ti->type->name); in clone_bio()
1299 struct dm_target_io *tio; in alloc_multiple_bios() local
1306 tio = alloc_tio(ci, ti, 0, GFP_NOIO); in alloc_multiple_bios()
1307 bio_list_add(blist, &tio->clone); in alloc_multiple_bios()
1318 tio = alloc_tio(ci, ti, bio_nr, try ? GFP_NOIO : GFP_NOWAIT); in alloc_multiple_bios()
1319 if (!tio) in alloc_multiple_bios()
1322 bio_list_add(blist, &tio->clone); in alloc_multiple_bios()
1330 tio = container_of(bio, struct dm_target_io, clone); in alloc_multiple_bios()
1331 free_tio(tio); in alloc_multiple_bios()
1337 struct dm_target_io *tio, unsigned *len) in __clone_and_map_simple_bio() argument
1339 struct bio *clone = &tio->clone; in __clone_and_map_simple_bio()
1341 tio->len_ptr = len; in __clone_and_map_simple_bio()
1346 __map_bio(tio); in __clone_and_map_simple_bio()
1354 struct dm_target_io *tio; in __send_duplicate_bios() local
1359 tio = container_of(bio, struct dm_target_io, clone); in __send_duplicate_bios()
1360 __clone_and_map_simple_bio(ci, tio, len); in __send_duplicate_bios()
1394 struct dm_target_io *tio; in __clone_and_map_data_bio() local
1397 tio = alloc_tio(ci, ti, 0, GFP_NOIO); in __clone_and_map_data_bio()
1398 tio->len_ptr = len; in __clone_and_map_data_bio()
1399 r = clone_bio(tio, bio, sector, *len); in __clone_and_map_data_bio()
1401 free_tio(tio); in __clone_and_map_data_bio()
1404 __map_bio(tio); in __clone_and_map_data_bio()