mirror of https://gitee.com/openkylin/linux.git
block: move bio_list_copy_data to pktcdvd
bio_list_copy_data is only used by pktcdvd, so move it there. Signed-off-by: Christoph Hellwig <hch@lst.de> Link: https://lore.kernel.org/r/20210412134658.2623190-2-hch@lst.de Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
6f822e1b5d
commit
5f03414d40
37
block/bio.c
37
block/bio.c
|
@ -1221,43 +1221,6 @@ void bio_copy_data(struct bio *dst, struct bio *src)
|
|||
}
|
||||
EXPORT_SYMBOL(bio_copy_data);
|
||||
|
||||
/**
|
||||
* bio_list_copy_data - copy contents of data buffers from one chain of bios to
|
||||
* another
|
||||
* @src: source bio list
|
||||
* @dst: destination bio list
|
||||
*
|
||||
* Stops when it reaches the end of either the @src list or @dst list - that is,
|
||||
* copies min(src->bi_size, dst->bi_size) bytes (or the equivalent for lists of
|
||||
* bios).
|
||||
*/
|
||||
void bio_list_copy_data(struct bio *dst, struct bio *src)
|
||||
{
|
||||
struct bvec_iter src_iter = src->bi_iter;
|
||||
struct bvec_iter dst_iter = dst->bi_iter;
|
||||
|
||||
while (1) {
|
||||
if (!src_iter.bi_size) {
|
||||
src = src->bi_next;
|
||||
if (!src)
|
||||
break;
|
||||
|
||||
src_iter = src->bi_iter;
|
||||
}
|
||||
|
||||
if (!dst_iter.bi_size) {
|
||||
dst = dst->bi_next;
|
||||
if (!dst)
|
||||
break;
|
||||
|
||||
dst_iter = dst->bi_iter;
|
||||
}
|
||||
|
||||
bio_copy_data_iter(dst, &dst_iter, src, &src_iter);
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL(bio_list_copy_data);
|
||||
|
||||
void bio_free_pages(struct bio *bio)
|
||||
{
|
||||
struct bio_vec *bvec;
|
||||
|
|
|
@ -1199,6 +1199,42 @@ static int pkt_handle_queue(struct pktcdvd_device *pd)
|
|||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* bio_list_copy_data - copy contents of data buffers from one chain of bios to
|
||||
* another
|
||||
* @src: source bio list
|
||||
* @dst: destination bio list
|
||||
*
|
||||
* Stops when it reaches the end of either the @src list or @dst list - that is,
|
||||
* copies min(src->bi_size, dst->bi_size) bytes (or the equivalent for lists of
|
||||
* bios).
|
||||
*/
|
||||
static void bio_list_copy_data(struct bio *dst, struct bio *src)
|
||||
{
|
||||
struct bvec_iter src_iter = src->bi_iter;
|
||||
struct bvec_iter dst_iter = dst->bi_iter;
|
||||
|
||||
while (1) {
|
||||
if (!src_iter.bi_size) {
|
||||
src = src->bi_next;
|
||||
if (!src)
|
||||
break;
|
||||
|
||||
src_iter = src->bi_iter;
|
||||
}
|
||||
|
||||
if (!dst_iter.bi_size) {
|
||||
dst = dst->bi_next;
|
||||
if (!dst)
|
||||
break;
|
||||
|
||||
dst_iter = dst->bi_iter;
|
||||
}
|
||||
|
||||
bio_copy_data_iter(dst, &dst_iter, src, &src_iter);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Assemble a bio to write one packet and queue the bio for processing
|
||||
* by the underlying block device.
|
||||
|
|
|
@ -483,7 +483,6 @@ extern void bio_check_pages_dirty(struct bio *bio);
|
|||
extern void bio_copy_data_iter(struct bio *dst, struct bvec_iter *dst_iter,
|
||||
struct bio *src, struct bvec_iter *src_iter);
|
||||
extern void bio_copy_data(struct bio *dst, struct bio *src);
|
||||
extern void bio_list_copy_data(struct bio *dst, struct bio *src);
|
||||
extern void bio_free_pages(struct bio *bio);
|
||||
void bio_truncate(struct bio *bio, unsigned new_size);
|
||||
void guard_bio_eod(struct bio *bio);
|
||||
|
|
Loading…
Reference in New Issue