Lines Matching refs:clone
407 static void clone_free(struct bio *clone) in clone_free() argument
411 if (clone->bi_vcnt > 0) { /* bio_for_each_folio_all crashes with an empty bio */ in clone_free()
412 bio_for_each_folio_all(fi, clone) in clone_free()
416 bio_uninit(clone); in clone_free()
417 kfree(clone); in clone_free()
420 static void clone_endio(struct bio *clone) in clone_endio() argument
422 struct bio *bio = clone->bi_private; in clone_endio()
423 bio->bi_status = clone->bi_status; in clone_endio()
424 clone_free(clone); in clone_endio()
430 struct bio *clone; in clone_bio() local
440 clone = bio_kmalloc(nr_iovecs, GFP_NOIO | __GFP_NORETRY | __GFP_NOWARN); in clone_bio()
441 if (!clone) in clone_bio()
444 bio_init(clone, fc->dev->bdev, clone->bi_inline_vecs, nr_iovecs, bio->bi_opf); in clone_bio()
446 clone->bi_iter.bi_sector = flakey_map_sector(ti, bio->bi_iter.bi_sector); in clone_bio()
447 clone->bi_private = bio; in clone_bio()
448 clone->bi_end_io = clone_endio; in clone_bio()
467 clone_free(clone); in clone_bio()
486 __bio_add_page(clone, pages, size_to_add, 0); in clone_bio()
490 return clone; in clone_bio()
553 struct bio *clone = clone_bio(ti, fc, bio); in flakey_map() local
554 if (clone) { in flakey_map()
556 corrupt_bio_data(clone, fc, in flakey_map()
557 clone->bi_iter); in flakey_map()
559 corrupt_bio_random(clone, in flakey_map()
560 clone->bi_iter); in flakey_map()
561 submit_bio(clone); in flakey_map()