mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-11 08:18:47 +00:00
dm: fold __clone_and_map_data_bio into __split_and_process_bio
Fold __clone_and_map_data_bio into its only caller. Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Mikulas Patocka <mpatocka@redhat.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com>
This commit is contained in:
parent
96c9865cb6
commit
66bdaa4302
@ -1207,25 +1207,6 @@ static void bio_setup_sector(struct bio *bio, sector_t sector, unsigned len)
|
||||
bio->bi_iter.bi_size = to_bytes(len);
|
||||
}
|
||||
|
||||
/*
|
||||
* Creates a bio that consists of range of complete bvecs.
|
||||
*/
|
||||
static int __clone_and_map_data_bio(struct clone_info *ci, struct dm_target *ti,
|
||||
sector_t sector, unsigned *len)
|
||||
{
|
||||
struct bio *bio = ci->bio, *clone;
|
||||
|
||||
clone = alloc_tio(ci, ti, 0, len, GFP_NOIO);
|
||||
bio_advance(clone, to_bytes(sector - clone->bi_iter.bi_sector));
|
||||
clone->bi_iter.bi_size = to_bytes(*len);
|
||||
|
||||
if (bio_integrity(bio))
|
||||
bio_integrity_trim(clone);
|
||||
|
||||
__map_bio(clone);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void alloc_multiple_bios(struct bio_list *blist, struct clone_info *ci,
|
||||
struct dm_target *ti, unsigned num_bios,
|
||||
unsigned *len)
|
||||
@ -1380,6 +1361,7 @@ static bool __process_abnormal_io(struct clone_info *ci, struct dm_target *ti,
|
||||
*/
|
||||
static int __split_and_process_bio(struct clone_info *ci)
|
||||
{
|
||||
struct bio *clone;
|
||||
struct dm_target *ti;
|
||||
unsigned len;
|
||||
int r;
|
||||
@ -1393,9 +1375,13 @@ static int __split_and_process_bio(struct clone_info *ci)
|
||||
|
||||
len = min_t(sector_t, max_io_len(ti, ci->sector), ci->sector_count);
|
||||
|
||||
r = __clone_and_map_data_bio(ci, ti, ci->sector, &len);
|
||||
if (r < 0)
|
||||
return r;
|
||||
clone = alloc_tio(ci, ti, 0, &len, GFP_NOIO);
|
||||
bio_advance(clone, to_bytes(ci->sector - clone->bi_iter.bi_sector));
|
||||
clone->bi_iter.bi_size = to_bytes(len);
|
||||
if (bio_integrity(clone))
|
||||
bio_integrity_trim(clone);
|
||||
|
||||
__map_bio(clone);
|
||||
|
||||
ci->sector += len;
|
||||
ci->sector_count -= len;
|
||||
|
Loading…
x
Reference in New Issue
Block a user