Lines Matching refs:tio

102 	struct dm_target_io tio;  member
107 struct dm_target_io *tio = container_of(bio, struct dm_target_io, clone); in dm_per_bio_data() local
108 if (!tio->inside_dm_io) in dm_per_bio_data()
110 …return (char *)bio - offsetof(struct dm_target_io, clone) - offsetof(struct dm_io, tio) - data_siz… in dm_per_bio_data()
118 …return (struct bio *)((char *)io + offsetof(struct dm_io, tio) + offsetof(struct dm_target_io, clo… in dm_bio_from_per_bio_data()
537 struct dm_target_io *tio; in alloc_io() local
544 tio = container_of(clone, struct dm_target_io, clone); in alloc_io()
545 tio->inside_dm_io = true; in alloc_io()
546 tio->io = NULL; in alloc_io()
548 io = container_of(tio, struct dm_io, tio); in alloc_io()
563 bio_put(&io->tio.clone); in free_io()
569 struct dm_target_io *tio; in alloc_tio() local
571 if (!ci->io->tio.io) { in alloc_tio()
573 tio = &ci->io->tio; in alloc_tio()
579 tio = container_of(clone, struct dm_target_io, clone); in alloc_tio()
580 tio->inside_dm_io = false; in alloc_tio()
583 tio->magic = DM_TIO_MAGIC; in alloc_tio()
584 tio->io = ci->io; in alloc_tio()
585 tio->ti = ti; in alloc_tio()
586 tio->target_bio_nr = target_bio_nr; in alloc_tio()
588 return tio; in alloc_tio()
591 static void free_tio(struct dm_target_io *tio) in free_tio() argument
593 if (tio->inside_dm_io) in free_tio()
595 bio_put(&tio->clone); in free_tio()
932 struct dm_target_io *tio = container_of(bio, struct dm_target_io, clone); in clone_endio() local
933 struct dm_io *io = tio->io; in clone_endio()
934 struct mapped_device *md = tio->io->md; in clone_endio()
935 dm_endio_fn endio = tio->ti->type->end_io; in clone_endio()
947 int r = endio(tio->ti, bio, &error); in clone_endio()
963 free_tio(tio); in clone_endio()
1147 struct dm_target_io *tio = container_of(bio, struct dm_target_io, clone); in dm_accept_partial_bio() local
1150 BUG_ON(bi_size > *tio->len_ptr); in dm_accept_partial_bio()
1152 *tio->len_ptr -= bi_size - n_sectors; in dm_accept_partial_bio()
1170 struct dm_target_io *tio = container_of(bio, struct dm_target_io, clone); in dm_remap_zone_report() local
1171 struct bio *report_bio = tio->io->orig_bio; in dm_remap_zone_report()
1249 static blk_qc_t __map_bio(struct dm_target_io *tio) in __map_bio() argument
1253 struct bio *clone = &tio->clone; in __map_bio()
1254 struct dm_io *io = tio->io; in __map_bio()
1256 struct dm_target *ti = tio->ti; in __map_bio()
1283 free_tio(tio); in __map_bio()
1287 free_tio(tio); in __map_bio()
1307 static int clone_bio(struct dm_target_io *tio, struct bio *bio, in clone_bio() argument
1310 struct bio *clone = &tio->clone; in clone_bio()
1317 if (unlikely(!dm_target_has_integrity(tio->ti->type) && in clone_bio()
1318 !dm_target_passes_integrity(tio->ti->type))) { in clone_bio()
1320 dm_device_name(tio->io->md), in clone_bio()
1321 tio->ti->type->name); in clone_bio()
1343 struct dm_target_io *tio; in alloc_multiple_bios() local
1350 tio = alloc_tio(ci, ti, 0, GFP_NOIO); in alloc_multiple_bios()
1351 bio_list_add(blist, &tio->clone); in alloc_multiple_bios()
1362 tio = alloc_tio(ci, ti, bio_nr, try ? GFP_NOIO : GFP_NOWAIT); in alloc_multiple_bios()
1363 if (!tio) in alloc_multiple_bios()
1366 bio_list_add(blist, &tio->clone); in alloc_multiple_bios()
1374 tio = container_of(bio, struct dm_target_io, clone); in alloc_multiple_bios()
1375 free_tio(tio); in alloc_multiple_bios()
1381 struct dm_target_io *tio, unsigned *len) in __clone_and_map_simple_bio() argument
1383 struct bio *clone = &tio->clone; in __clone_and_map_simple_bio()
1385 tio->len_ptr = len; in __clone_and_map_simple_bio()
1391 return __map_bio(tio); in __clone_and_map_simple_bio()
1399 struct dm_target_io *tio; in __send_duplicate_bios() local
1404 tio = container_of(bio, struct dm_target_io, clone); in __send_duplicate_bios()
1405 (void) __clone_and_map_simple_bio(ci, tio, len); in __send_duplicate_bios()
1425 struct dm_target_io *tio; in __clone_and_map_data_bio() local
1428 tio = alloc_tio(ci, ti, 0, GFP_NOIO); in __clone_and_map_data_bio()
1429 tio->len_ptr = len; in __clone_and_map_data_bio()
1430 r = clone_bio(tio, bio, sector, *len); in __clone_and_map_data_bio()
1432 free_tio(tio); in __clone_and_map_data_bio()
1435 (void) __map_bio(tio); in __clone_and_map_data_bio()
1663 struct dm_target_io *tio; in __process_bio() local
1679 tio = alloc_tio(&ci, ti, 0, GFP_NOIO); in __process_bio()
1680 ret = __clone_and_map_simple_bio(&ci, tio, NULL); in __process_bio()
2960 io_front_pad = roundup(front_pad, __alignof__(struct dm_io)) + offsetof(struct dm_io, tio); in dm_alloc_md_mempools()