Lines Matching refs:bio

333 static void iblock_bio_done(struct bio *bio)  in iblock_bio_done()  argument
335 struct se_cmd *cmd = bio->bi_private; in iblock_bio_done()
337 blk_status_t blk_status = bio->bi_status; in iblock_bio_done()
339 if (bio->bi_status) { in iblock_bio_done()
340 pr_err("bio error: %p, err: %d\n", bio, bio->bi_status); in iblock_bio_done()
348 bio_put(bio); in iblock_bio_done()
353 static struct bio *iblock_get_bio(struct se_cmd *cmd, sector_t lba, u32 sg_num, in iblock_get_bio()
357 struct bio *bio; in iblock_get_bio() local
363 bio = bio_alloc_bioset(ib_dev->ibd_bd, bio_max_segs(sg_num), opf, in iblock_get_bio()
365 if (!bio) { in iblock_get_bio()
370 bio->bi_private = cmd; in iblock_get_bio()
371 bio->bi_end_io = &iblock_bio_done; in iblock_get_bio()
372 bio->bi_iter.bi_sector = lba; in iblock_get_bio()
374 return bio; in iblock_get_bio()
380 struct bio *bio; in iblock_submit_bios() local
386 while ((bio = bio_list_pop(list))) in iblock_submit_bios()
387 submit_bio(bio); in iblock_submit_bios()
391 static void iblock_end_io_flush(struct bio *bio) in iblock_end_io_flush() argument
393 struct se_cmd *cmd = bio->bi_private; in iblock_end_io_flush()
395 if (bio->bi_status) in iblock_end_io_flush()
396 pr_err("IBLOCK: cache flush failed: %d\n", bio->bi_status); in iblock_end_io_flush()
399 if (bio->bi_status) in iblock_end_io_flush()
405 bio_put(bio); in iblock_end_io_flush()
417 struct bio *bio; in iblock_execute_sync_cache() local
426 bio = bio_alloc(ib_dev->ibd_bd, 0, REQ_OP_WRITE | REQ_PREFLUSH, in iblock_execute_sync_cache()
428 bio->bi_end_io = iblock_end_io_flush; in iblock_execute_sync_cache()
430 bio->bi_private = cmd; in iblock_execute_sync_cache()
431 submit_bio(bio); in iblock_execute_sync_cache()
493 struct bio *bio; in iblock_execute_write_same() local
529 bio = iblock_get_bio(cmd, block_lba, 1, REQ_OP_WRITE); in iblock_execute_write_same()
530 if (!bio) in iblock_execute_write_same()
534 bio_list_add(&list, bio); in iblock_execute_write_same()
539 while (bio_add_page(bio, sg_page(sg), sg->length, sg->offset) in iblock_execute_write_same()
542 bio = iblock_get_bio(cmd, block_lba, 1, REQ_OP_WRITE); in iblock_execute_write_same()
543 if (!bio) in iblock_execute_write_same()
547 bio_list_add(&list, bio); in iblock_execute_write_same()
559 while ((bio = bio_list_pop(&list))) in iblock_execute_write_same()
560 bio_put(bio); in iblock_execute_write_same()
687 iblock_alloc_bip(struct se_cmd *cmd, struct bio *bio, in iblock_alloc_bip() argument
703 bip = bio_integrity_alloc(bio, GFP_NOIO, bio_max_segs(cmd->t_prot_nents)); in iblock_alloc_bip()
710 bip_set_seed(bip, bio->bi_iter.bi_sector >> in iblock_alloc_bip()
716 resid = bio_integrity_bytes(bi, bio_sectors(bio)); in iblock_alloc_bip()
720 rc = bio_integrity_add_page(bio, miter->page, len, in iblock_alloc_bip()
747 struct bio *bio; in iblock_execute_rw() local
792 bio = iblock_get_bio(cmd, block_lba, sgl_nents, opf); in iblock_execute_rw()
793 if (!bio) in iblock_execute_rw()
797 bio_list_add(&list, bio); in iblock_execute_rw()
812 while (bio_add_page(bio, sg_page(sg), sg->length, sg->offset) in iblock_execute_rw()
815 rc = iblock_alloc_bip(cmd, bio, &prot_miter); in iblock_execute_rw()
825 bio = iblock_get_bio(cmd, block_lba, sg_num, opf); in iblock_execute_rw()
826 if (!bio) in iblock_execute_rw()
830 bio_list_add(&list, bio); in iblock_execute_rw()
840 rc = iblock_alloc_bip(cmd, bio, &prot_miter); in iblock_execute_rw()
850 while ((bio = bio_list_pop(&list))) in iblock_execute_rw()
851 bio_put(bio); in iblock_execute_rw()