@@ -631,20 +631,21 @@ struct bio *bio_clone_fast(struct bio *bio, gfp_t gfp_mask, struct bio_set *bs)
631
631
}
632
632
EXPORT_SYMBOL (bio_clone_fast );
633
633
634
- static struct bio * __bio_clone_bioset (struct bio * bio_src , gfp_t gfp_mask ,
635
- struct bio_set * bs , int offset ,
636
- int size )
634
+ /**
635
+ * bio_clone_bioset - clone a bio
636
+ * @bio_src: bio to clone
637
+ * @gfp_mask: allocation priority
638
+ * @bs: bio_set to allocate from
639
+ *
640
+ * Clone bio. Caller will own the returned bio, but not the actual data it
641
+ * points to. Reference count of returned bio will be one.
642
+ */
643
+ struct bio * bio_clone_bioset (struct bio * bio_src , gfp_t gfp_mask ,
644
+ struct bio_set * bs )
637
645
{
638
646
struct bvec_iter iter ;
639
647
struct bio_vec bv ;
640
648
struct bio * bio ;
641
- struct bvec_iter iter_src = bio_src -> bi_iter ;
642
-
643
- /* for supporting partial clone */
644
- if (offset || size != bio_src -> bi_iter .bi_size ) {
645
- bio_advance_iter (bio_src , & iter_src , offset );
646
- iter_src .bi_size = size ;
647
- }
648
649
649
650
/*
650
651
* Pre immutable biovecs, __bio_clone() used to just do a memcpy from
@@ -668,8 +669,7 @@ static struct bio *__bio_clone_bioset(struct bio *bio_src, gfp_t gfp_mask,
668
669
* __bio_clone_fast() anyways.
669
670
*/
670
671
671
- bio = bio_alloc_bioset (gfp_mask , __bio_segments (bio_src ,
672
- & iter_src ), bs );
672
+ bio = bio_alloc_bioset (gfp_mask , bio_segments (bio_src ), bs );
673
673
if (!bio )
674
674
return NULL ;
675
675
bio -> bi_bdev = bio_src -> bi_bdev ;
@@ -686,7 +686,7 @@ static struct bio *__bio_clone_bioset(struct bio *bio_src, gfp_t gfp_mask,
686
686
bio -> bi_io_vec [bio -> bi_vcnt ++ ] = bio_src -> bi_io_vec [0 ];
687
687
break ;
688
688
default :
689
- __bio_for_each_segment (bv , bio_src , iter , iter_src )
689
+ bio_for_each_segment (bv , bio_src , iter )
690
690
bio -> bi_io_vec [bio -> bi_vcnt ++ ] = bv ;
691
691
break ;
692
692
}
@@ -705,43 +705,8 @@ static struct bio *__bio_clone_bioset(struct bio *bio_src, gfp_t gfp_mask,
705
705
706
706
return bio ;
707
707
}
708
-
709
- /**
710
- * bio_clone_bioset - clone a bio
711
- * @bio_src: bio to clone
712
- * @gfp_mask: allocation priority
713
- * @bs: bio_set to allocate from
714
- *
715
- * Clone bio. Caller will own the returned bio, but not the actual data it
716
- * points to. Reference count of returned bio will be one.
717
- */
718
- struct bio * bio_clone_bioset (struct bio * bio_src , gfp_t gfp_mask ,
719
- struct bio_set * bs )
720
- {
721
- return __bio_clone_bioset (bio_src , gfp_mask , bs , 0 ,
722
- bio_src -> bi_iter .bi_size );
723
- }
724
708
EXPORT_SYMBOL (bio_clone_bioset );
725
709
726
- /**
727
- * bio_clone_bioset_partial - clone a partial bio
728
- * @bio_src: bio to clone
729
- * @gfp_mask: allocation priority
730
- * @bs: bio_set to allocate from
731
- * @offset: cloned starting from the offset
732
- * @size: size for the cloned bio
733
- *
734
- * Clone bio. Caller will own the returned bio, but not the actual data it
735
- * points to. Reference count of returned bio will be one.
736
- */
737
- struct bio * bio_clone_bioset_partial (struct bio * bio_src , gfp_t gfp_mask ,
738
- struct bio_set * bs , int offset ,
739
- int size )
740
- {
741
- return __bio_clone_bioset (bio_src , gfp_mask , bs , offset , size );
742
- }
743
- EXPORT_SYMBOL (bio_clone_bioset_partial );
744
-
745
710
/**
746
711
* bio_add_pc_page - attempt to add page to bio
747
712
* @q: the target queue
0 commit comments