@@ -633,20 +633,21 @@ struct bio *bio_clone_fast(struct bio *bio, gfp_t gfp_mask, struct bio_set *bs)
633633}
634634EXPORT_SYMBOL (bio_clone_fast );
635635
636- static struct bio * __bio_clone_bioset (struct bio * bio_src , gfp_t gfp_mask ,
637- struct bio_set * bs , int offset ,
638- int size )
636+ /**
637+ * bio_clone_bioset - clone a bio
638+ * @bio_src: bio to clone
639+ * @gfp_mask: allocation priority
640+ * @bs: bio_set to allocate from
641+ *
642+ * Clone bio. Caller will own the returned bio, but not the actual data it
643+ * points to. Reference count of returned bio will be one.
644+ */
645+ struct bio * bio_clone_bioset (struct bio * bio_src , gfp_t gfp_mask ,
646+ struct bio_set * bs )
639647{
640648 struct bvec_iter iter ;
641649 struct bio_vec bv ;
642650 struct bio * bio ;
643- struct bvec_iter iter_src = bio_src -> bi_iter ;
644-
645- /* for supporting partial clone */
646- if (offset || size != bio_src -> bi_iter .bi_size ) {
647- bio_advance_iter (bio_src , & iter_src , offset );
648- iter_src .bi_size = size ;
649- }
650651
651652 /*
652653 * Pre immutable biovecs, __bio_clone() used to just do a memcpy from
@@ -670,8 +671,7 @@ static struct bio *__bio_clone_bioset(struct bio *bio_src, gfp_t gfp_mask,
670671 * __bio_clone_fast() anyways.
671672 */
672673
673- bio = bio_alloc_bioset (gfp_mask , __bio_segments (bio_src ,
674- & iter_src ), bs );
674+ bio = bio_alloc_bioset (gfp_mask , bio_segments (bio_src ), bs );
675675 if (!bio )
676676 return NULL ;
677677 bio -> bi_bdev = bio_src -> bi_bdev ;
@@ -688,7 +688,7 @@ static struct bio *__bio_clone_bioset(struct bio *bio_src, gfp_t gfp_mask,
688688 bio -> bi_io_vec [bio -> bi_vcnt ++ ] = bio_src -> bi_io_vec [0 ];
689689 break ;
690690 default :
691- __bio_for_each_segment (bv , bio_src , iter , iter_src )
691+ bio_for_each_segment (bv , bio_src , iter )
692692 bio -> bi_io_vec [bio -> bi_vcnt ++ ] = bv ;
693693 break ;
694694 }
@@ -707,43 +707,8 @@ static struct bio *__bio_clone_bioset(struct bio *bio_src, gfp_t gfp_mask,
707707
708708 return bio ;
709709}
710-
711- /**
712- * bio_clone_bioset - clone a bio
713- * @bio_src: bio to clone
714- * @gfp_mask: allocation priority
715- * @bs: bio_set to allocate from
716- *
717- * Clone bio. Caller will own the returned bio, but not the actual data it
718- * points to. Reference count of returned bio will be one.
719- */
720- struct bio * bio_clone_bioset (struct bio * bio_src , gfp_t gfp_mask ,
721- struct bio_set * bs )
722- {
723- return __bio_clone_bioset (bio_src , gfp_mask , bs , 0 ,
724- bio_src -> bi_iter .bi_size );
725- }
726710EXPORT_SYMBOL (bio_clone_bioset );
727711
728- /**
729- * bio_clone_bioset_partial - clone a partial bio
730- * @bio_src: bio to clone
731- * @gfp_mask: allocation priority
732- * @bs: bio_set to allocate from
733- * @offset: cloned starting from the offset
734- * @size: size for the cloned bio
735- *
736- * Clone bio. Caller will own the returned bio, but not the actual data it
737- * points to. Reference count of returned bio will be one.
738- */
739- struct bio * bio_clone_bioset_partial (struct bio * bio_src , gfp_t gfp_mask ,
740- struct bio_set * bs , int offset ,
741- int size )
742- {
743- return __bio_clone_bioset (bio_src , gfp_mask , bs , offset , size );
744- }
745- EXPORT_SYMBOL (bio_clone_bioset_partial );
746-
747712/**
748713 * bio_add_pc_page - attempt to add page to bio
749714 * @q: the target queue
0 commit comments