Lines Matching defs:bio
67 * a bio containing the header page and partial parity pages (sh->ppl_page) for
152 /* inline bio and its biovec for submitting the iounit */
153 struct bio bio;
253 bio_init(&io->bio, io->biovec, PPL_IO_INLINE_BVECS);
397 static void ppl_log_endio(struct bio *bio)
399 struct ppl_io_unit *io = bio->bi_private;
406 if (bio->bi_status)
417 static void ppl_submit_iounit_bio(struct ppl_io_unit *io, struct bio *bio)
422 __func__, io->seq, bio->bi_iter.bi_size,
423 (unsigned long long)bio->bi_iter.bi_sector,
424 bio_devname(bio, b));
426 submit_bio(bio);
434 struct bio *bio = &io->bio;
438 bio->bi_private = io;
441 ppl_log_endio(bio);
467 bio->bi_end_io = ppl_log_endio;
468 bio->bi_opf = REQ_OP_WRITE | REQ_FUA;
469 bio_set_dev(bio, log->rdev->bdev);
470 bio->bi_iter.bi_sector = log->next_io_sector;
471 bio_add_page(bio, io->header_page, PAGE_SIZE, 0);
472 bio->bi_write_hint = ppl_conf->write_hint;
496 if (!bio_add_page(bio, sh->ppl_page, PAGE_SIZE, 0)) {
497 struct bio *prev = bio;
499 bio = bio_alloc_bioset(GFP_NOIO, BIO_MAX_PAGES,
501 bio->bi_opf = prev->bi_opf;
502 bio->bi_write_hint = prev->bi_write_hint;
503 bio_copy_dev(bio, prev);
504 bio->bi_iter.bi_sector = bio_end_sector(prev);
505 bio_add_page(bio, sh->ppl_page, PAGE_SIZE, 0);
507 bio_chain(bio, prev);
512 ppl_submit_iounit_bio(io, bio);
587 static void ppl_flush_endio(struct bio *bio)
589 struct ppl_io_unit *io = bio->bi_private;
595 pr_debug("%s: dev: %s\n", __func__, bio_devname(bio, b));
597 if (bio->bi_status) {
601 rdev = md_find_rdev_rcu(conf->mddev, bio_dev(bio));
607 bio_put(bio);
637 struct bio *bio;
640 bio = bio_alloc_bioset(GFP_NOIO, 0, &ppl_conf->flush_bs);
641 bio_set_dev(bio, bdev);
642 bio->bi_private = io;
643 bio->bi_opf = REQ_OP_WRITE | REQ_PREFLUSH;
644 bio->bi_end_io = ppl_flush_endio;
647 bio_devname(bio, b));
649 submit_bio(bio);
691 int ppl_handle_flush_request(struct r5l_log *log, struct bio *bio)
693 if (bio->bi_iter.bi_size == 0) {
694 bio_endio(bio);
697 bio->bi_opf &= ~REQ_PREFLUSH;