dm.c (5af8c4e0fac9838428bd718040b664043a05f37c) | dm.c (9c47008d13add50ec4597a8b9eee200c515282c8) |
---|---|
1/* 2 * Copyright (C) 2001, 2002 Sistina Software (UK) Limited. 3 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. 4 * 5 * This file is released under the GPL. 6 */ 7 8#include "dm.h" --- 686 unchanged lines hidden (view full) --- 695 clone->bi_bdev = bio->bi_bdev; 696 clone->bi_rw = bio->bi_rw; 697 clone->bi_vcnt = 1; 698 clone->bi_size = to_bytes(len); 699 clone->bi_io_vec->bv_offset = offset; 700 clone->bi_io_vec->bv_len = clone->bi_size; 701 clone->bi_flags |= 1 << BIO_CLONED; 702 | 1/* 2 * Copyright (C) 2001, 2002 Sistina Software (UK) Limited. 3 * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. 4 * 5 * This file is released under the GPL. 6 */ 7 8#include "dm.h" --- 686 unchanged lines hidden (view full) --- 695 clone->bi_bdev = bio->bi_bdev; 696 clone->bi_rw = bio->bi_rw; 697 clone->bi_vcnt = 1; 698 clone->bi_size = to_bytes(len); 699 clone->bi_io_vec->bv_offset = offset; 700 clone->bi_io_vec->bv_len = clone->bi_size; 701 clone->bi_flags |= 1 << BIO_CLONED; 702 |
703 if (bio_integrity(bio)) { 704 bio_integrity_clone(clone, bio, GFP_NOIO); 705 bio_integrity_trim(clone, 706 bio_sector_offset(bio, idx, offset), len); 707 } 708 |
|
703 return clone; 704} 705 706/* 707 * Creates a bio that consists of range of complete bvecs. 708 */ 709static struct bio *clone_bio(struct bio *bio, sector_t sector, 710 unsigned short idx, unsigned short bv_count, --- 5 unchanged lines hidden (view full) --- 716 __bio_clone(clone, bio); 717 clone->bi_destructor = dm_bio_destructor; 718 clone->bi_sector = sector; 719 clone->bi_idx = idx; 720 clone->bi_vcnt = idx + bv_count; 721 clone->bi_size = to_bytes(len); 722 clone->bi_flags &= ~(1 << BIO_SEG_VALID); 723 | 709 return clone; 710} 711 712/* 713 * Creates a bio that consists of range of complete bvecs. 714 */ 715static struct bio *clone_bio(struct bio *bio, sector_t sector, 716 unsigned short idx, unsigned short bv_count, --- 5 unchanged lines hidden (view full) --- 722 __bio_clone(clone, bio); 723 clone->bi_destructor = dm_bio_destructor; 724 clone->bi_sector = sector; 725 clone->bi_idx = idx; 726 clone->bi_vcnt = idx + bv_count; 727 clone->bi_size = to_bytes(len); 728 clone->bi_flags &= ~(1 << BIO_SEG_VALID); 729 |
730 if (bio_integrity(bio)) { 731 bio_integrity_clone(clone, bio, GFP_NOIO); 732 733 if (idx != bio->bi_idx || clone->bi_size < bio->bi_size) 734 bio_integrity_trim(clone, 735 bio_sector_offset(bio, idx, 0), len); 736 } 737 |
|
724 return clone; 725} 726 727static int __clone_and_map(struct clone_info *ci) 728{ 729 struct bio *clone, *bio = ci->bio; 730 struct dm_target *ti; 731 sector_t len = 0, max; --- 456 unchanged lines hidden (view full) --- 1188 if (md->suspended_bdev) { 1189 unlock_fs(md); 1190 bdput(md->suspended_bdev); 1191 } 1192 destroy_workqueue(md->wq); 1193 mempool_destroy(md->tio_pool); 1194 mempool_destroy(md->io_pool); 1195 bioset_free(md->bs); | 738 return clone; 739} 740 741static int __clone_and_map(struct clone_info *ci) 742{ 743 struct bio *clone, *bio = ci->bio; 744 struct dm_target *ti; 745 sector_t len = 0, max; --- 456 unchanged lines hidden (view full) --- 1202 if (md->suspended_bdev) { 1203 unlock_fs(md); 1204 bdput(md->suspended_bdev); 1205 } 1206 destroy_workqueue(md->wq); 1207 mempool_destroy(md->tio_pool); 1208 mempool_destroy(md->io_pool); 1209 bioset_free(md->bs); |
1210 blk_integrity_unregister(md->disk); |
|
1196 del_gendisk(md->disk); 1197 free_minor(minor); 1198 1199 spin_lock(&_minor_lock); 1200 md->disk->private_data = NULL; 1201 spin_unlock(&_minor_lock); 1202 1203 put_disk(md->disk); --- 536 unchanged lines hidden --- | 1211 del_gendisk(md->disk); 1212 free_minor(minor); 1213 1214 spin_lock(&_minor_lock); 1215 md->disk->private_data = NULL; 1216 spin_unlock(&_minor_lock); 1217 1218 put_disk(md->disk); --- 536 unchanged lines hidden --- |