/* bios hold a dio reference between submit_bio and ->end_io.  */
static void dio_bio_submit(struct dio *dio)
/* bios hold a dio reference between submit_bio and ->end_io.  */
static void dio_bio_submit(struct dio *dio)
{
	struct bio *bio = dio->bio;
	unsigned long flags;
	bio->bi_private = dio;
	spin_lock_irqsave(&dio->bio_lock, flags);
	dio->refcount++;
	spin_unlock_irqrestore(&dio->bio_lock, flags);
	if (dio->is_async && dio->rw == READ)
		bio_set_pages_dirty(bio);
	submit_bio(dio->rw, bio);
	dio->bio = NULL;
	dio->boundary = 0;
}