Lines Matching refs:clone
392 static void clone_free(struct bio *clone) in clone_free() argument
396 if (clone->bi_vcnt > 0) { /* bio_for_each_folio_all crashes with an empty bio */ in clone_free()
397 bio_for_each_folio_all(fi, clone) in clone_free()
401 bio_uninit(clone); in clone_free()
402 kfree(clone); in clone_free()
405 static void clone_endio(struct bio *clone) in clone_endio() argument
407 struct bio *bio = clone->bi_private; in clone_endio()
408 bio->bi_status = clone->bi_status; in clone_endio()
409 clone_free(clone); in clone_endio()
415 struct bio *clone; in clone_bio() local
425 clone = bio_kmalloc(nr_iovecs, GFP_NOIO | __GFP_NORETRY | __GFP_NOWARN); in clone_bio()
426 if (!clone) in clone_bio()
429 bio_init(clone, fc->dev->bdev, bio->bi_inline_vecs, nr_iovecs, bio->bi_opf); in clone_bio()
431 clone->bi_iter.bi_sector = flakey_map_sector(ti, bio->bi_iter.bi_sector); in clone_bio()
432 clone->bi_private = bio; in clone_bio()
433 clone->bi_end_io = clone_endio; in clone_bio()
452 clone_free(clone); in clone_bio()
471 __bio_add_page(clone, pages, size_to_add, 0); in clone_bio()
475 return clone; in clone_bio()
535 struct bio *clone = clone_bio(ti, fc, bio); in flakey_map() local
536 if (clone) { in flakey_map()
538 corrupt_bio_data(clone, fc); in flakey_map()
540 corrupt_bio_random(clone); in flakey_map()
541 submit_bio(clone); in flakey_map()