Lines Matching defs:bio
70 struct bio *bio = mp_bh->master_bio;
73 bio->bi_status = status;
74 bio_endio(bio);
78 static void multipath_end_request(struct bio *bio)
80 struct multipath_bh *mp_bh = bio->bi_private;
84 if (!bio->bi_status)
86 else if (!(bio->bi_opf & REQ_RAHEAD)) {
93 (unsigned long long)bio->bi_iter.bi_sector);
96 multipath_end_bh_io(mp_bh, bio->bi_status);
100 static bool multipath_make_request(struct mddev *mddev, struct bio * bio)
106 if (unlikely(bio->bi_opf & REQ_PREFLUSH)
107 && md_flush_request(mddev, bio))
110 md_account_bio(mddev, &bio);
113 mp_bh->master_bio = bio;
118 bio_io_error(bio);
124 bio_init_clone(multipath->rdev->bdev, &mp_bh->bio, bio, GFP_NOIO);
126 mp_bh->bio.bi_iter.bi_sector += multipath->rdev->data_offset;
127 mp_bh->bio.bi_opf |= REQ_FAILFAST_TRANSPORT;
128 mp_bh->bio.bi_end_io = multipath_end_request;
129 mp_bh->bio.bi_private = mp_bh;
130 mddev_check_write_zeroes(mddev, &mp_bh->bio);
131 submit_bio_noacct(&mp_bh->bio);
290 struct bio *bio;
304 bio = &mp_bh->bio;
305 bio->bi_iter.bi_sector = mp_bh->master_bio->bi_iter.bi_sector;
309 bio->bi_bdev,
310 (unsigned long long)bio->bi_iter.bi_sector);
314 bio->bi_bdev,
315 (unsigned long long)bio->bi_iter.bi_sector);
316 *bio = *(mp_bh->master_bio);
317 bio->bi_iter.bi_sector +=
319 bio_set_dev(bio, conf->multipaths[mp_bh->path].rdev->bdev);
320 bio->bi_opf |= REQ_FAILFAST_TRANSPORT;
321 bio->bi_end_io = multipath_end_request;
322 bio->bi_private = mp_bh;
323 submit_bio_noacct(bio);