Lines Matching refs:bio

295 static void iblock_bio_done(struct bio *bio)  in iblock_bio_done()  argument
297 struct se_cmd *cmd = bio->bi_private; in iblock_bio_done()
300 if (bio->bi_error) { in iblock_bio_done()
301 pr_err("bio error: %p, err: %d\n", bio, bio->bi_error); in iblock_bio_done()
309 bio_put(bio); in iblock_bio_done()
314 static struct bio *
318 struct bio *bio; in iblock_get_bio() local
327 bio = bio_alloc_bioset(GFP_NOIO, sg_num, ib_dev->ibd_bio_set); in iblock_get_bio()
328 if (!bio) { in iblock_get_bio()
333 bio->bi_bdev = ib_dev->ibd_bd; in iblock_get_bio()
334 bio->bi_private = cmd; in iblock_get_bio()
335 bio->bi_end_io = &iblock_bio_done; in iblock_get_bio()
336 bio->bi_iter.bi_sector = lba; in iblock_get_bio()
338 return bio; in iblock_get_bio()
344 struct bio *bio; in iblock_submit_bios() local
347 while ((bio = bio_list_pop(list))) in iblock_submit_bios()
348 submit_bio(rw, bio); in iblock_submit_bios()
352 static void iblock_end_io_flush(struct bio *bio) in iblock_end_io_flush() argument
354 struct se_cmd *cmd = bio->bi_private; in iblock_end_io_flush()
356 if (bio->bi_error) in iblock_end_io_flush()
357 pr_err("IBLOCK: cache flush failed: %d\n", bio->bi_error); in iblock_end_io_flush()
360 if (bio->bi_error) in iblock_end_io_flush()
366 bio_put(bio); in iblock_end_io_flush()
378 struct bio *bio; in iblock_execute_sync_cache() local
387 bio = bio_alloc(GFP_KERNEL, 0); in iblock_execute_sync_cache()
388 bio->bi_end_io = iblock_end_io_flush; in iblock_execute_sync_cache()
389 bio->bi_bdev = ib_dev->ibd_bd; in iblock_execute_sync_cache()
391 bio->bi_private = cmd; in iblock_execute_sync_cache()
392 submit_bio(WRITE_FLUSH, bio); in iblock_execute_sync_cache()
420 struct bio *bio; in iblock_execute_write_same() local
447 bio = iblock_get_bio(cmd, block_lba, 1); in iblock_execute_write_same()
448 if (!bio) in iblock_execute_write_same()
452 bio_list_add(&list, bio); in iblock_execute_write_same()
457 while (bio_add_page(bio, sg_page(sg), sg->length, sg->offset) in iblock_execute_write_same()
460 bio = iblock_get_bio(cmd, block_lba, 1); in iblock_execute_write_same()
461 if (!bio) in iblock_execute_write_same()
465 bio_list_add(&list, bio); in iblock_execute_write_same()
477 while ((bio = bio_list_pop(&list))) in iblock_execute_write_same()
478 bio_put(bio); in iblock_execute_write_same()
590 iblock_alloc_bip(struct se_cmd *cmd, struct bio *bio) in iblock_alloc_bip() argument
605 bip = bio_integrity_alloc(bio, GFP_NOIO, cmd->t_prot_nents); in iblock_alloc_bip()
613 bip->bip_iter.bi_sector = bio->bi_iter.bi_sector; in iblock_alloc_bip()
620 rc = bio_integrity_add_page(bio, sg_page(sg), sg->length, in iblock_alloc_bip()
641 struct bio *bio, *bio_start; in iblock_execute_rw() local
681 bio = iblock_get_bio(cmd, block_lba, sgl_nents); in iblock_execute_rw()
682 if (!bio) in iblock_execute_rw()
685 bio_start = bio; in iblock_execute_rw()
687 bio_list_add(&list, bio); in iblock_execute_rw()
698 while (bio_add_page(bio, sg_page(sg), sg->length, sg->offset) in iblock_execute_rw()
705 bio = iblock_get_bio(cmd, block_lba, sg_num); in iblock_execute_rw()
706 if (!bio) in iblock_execute_rw()
710 bio_list_add(&list, bio); in iblock_execute_rw()
730 while ((bio = bio_list_pop(&list))) in iblock_execute_rw()
731 bio_put(bio); in iblock_execute_rw()