Lines Matching defs:bio
11 #include "dm-bio-record.h"
233 * bio-based doesn't support any direct scsi_dh management;
279 static struct dm_mpath_io *get_mpio_from_bio(struct bio *bio)
281 return dm_per_bio_data(bio, multipath_per_bio_data_size());
286 /* dm_bio_details is immediately after the dm_mpath_io in bio's per-bio-data */
291 static void multipath_init_per_bio_data(struct bio *bio, struct dm_mpath_io **mpio_p)
293 struct dm_mpath_io *mpio = get_mpio_from_bio(bio);
296 mpio->nr_bytes = bio->bi_iter.bi_size;
300 dm_bio_record(bio_details, bio);
552 clone->bio = clone->biotail = NULL;
586 * Map cloned bios (bio-based multipath)
589 static void __multipath_queue_bio(struct multipath *m, struct bio *bio)
592 bio_list_add(&m->queued_bios, bio);
597 static void multipath_queue_bio(struct multipath *m, struct bio *bio)
602 __multipath_queue_bio(m, bio);
606 static struct pgpath *__map_bio(struct multipath *m, struct bio *bio)
614 pgpath = choose_pgpath(m, bio->bi_iter.bi_size);
619 __multipath_queue_bio(m, bio);
626 multipath_queue_bio(m, bio);
634 static int __multipath_map_bio(struct multipath *m, struct bio *bio,
637 struct pgpath *pgpath = __map_bio(m, bio);
651 bio->bi_status = 0;
652 bio_set_dev(bio, pgpath->path.dev->bdev);
653 bio->bi_opf |= REQ_FAILFAST_TRANSPORT;
662 static int multipath_map_bio(struct dm_target *ti, struct bio *bio)
667 multipath_init_per_bio_data(bio, &mpio);
668 return __multipath_map_bio(m, bio, mpio);
683 struct bio *bio;
704 while ((bio = bio_list_pop(&bios))) {
705 struct dm_mpath_io *mpio = get_mpio_from_bio(bio);
706 dm_bio_restore(get_bio_details_from_mpio(mpio), bio);
707 r = __multipath_map_bio(m, bio, mpio);
710 bio->bi_status = BLK_STS_IOERR;
711 bio_endio(bio);
714 bio->bi_status = BLK_STS_DM_REQUEUE;
715 bio_endio(bio);
718 submit_bio_noacct(bio);
1067 DMERR("bio-based multipath doesn't allow hardware handler args");
1152 if (!strcasecmp(queue_mode_name, "bio"))
1644 * bio clones. If we queue them inside the multipath target,
1645 * we need to make bio clones, that requires memory allocation.
1647 * don't have bio clones.)
1683 static int multipath_end_io_bio(struct dm_target *ti, struct bio *clone,
1738 /* FIXME: bio-based shouldn't need to always disable queue_if_no_path */
1825 DMEMIT("queue_mode bio ");