Lines Matching refs:bio
64 static void flush_bios(struct bio *bio) in flush_bios() argument
66 struct bio *n; in flush_bios()
68 while (bio) { in flush_bios()
69 n = bio->bi_next; in flush_bios()
70 bio->bi_next = NULL; in flush_bios()
71 generic_make_request(bio); in flush_bios()
72 bio = n; in flush_bios()
76 static struct bio *flush_delayed_bios(struct delay_c *dc, int flush_all) in flush_delayed_bios()
86 struct bio *bio = dm_bio_from_per_bio_data(delayed, in flush_delayed_bios() local
89 bio_list_add(&flush_bios, bio); in flush_delayed_bios()
90 if ((bio_data_dir(bio) == WRITE)) in flush_delayed_bios()
228 static int delay_bio(struct delay_c *dc, int delay, struct bio *bio) in delay_bio() argument
236 delayed = dm_per_bio_data(bio, sizeof(struct dm_delay_info)); in delay_bio()
243 if (bio_data_dir(bio) == WRITE) in delay_bio()
273 static int delay_map(struct dm_target *ti, struct bio *bio) in delay_map() argument
277 if ((bio_data_dir(bio) == WRITE) && (dc->dev_write)) { in delay_map()
278 bio->bi_bdev = dc->dev_write->bdev; in delay_map()
279 if (bio_sectors(bio)) in delay_map()
280 bio->bi_iter.bi_sector = dc->start_write + in delay_map()
281 dm_target_offset(ti, bio->bi_iter.bi_sector); in delay_map()
283 return delay_bio(dc, dc->write_delay, bio); in delay_map()
286 bio->bi_bdev = dc->dev_read->bdev; in delay_map()
287 bio->bi_iter.bi_sector = dc->start_read + in delay_map()
288 dm_target_offset(ti, bio->bi_iter.bi_sector); in delay_map()
290 return delay_bio(dc, dc->read_delay, bio); in delay_map()