aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-01-28 16:51:56 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2008-01-28 16:51:56 -0500
commit8d01eddf292dcd78b640418c80fb300532799cd4 (patch)
treedd7f816423463e5ad10f15af22fdbd5b75cc6184 /fs
parentf0f0052069989b80d2a3e50c9cd2f2a650bc1aea (diff)
parentfa0ccd837e3dddb44c7db2f128a8bb7e4eabc21a (diff)
Merge branch 'for-2.6.25' of git://git.kernel.dk/linux-2.6-block
* 'for-2.6.25' of git://git.kernel.dk/linux-2.6-block: block: implement drain buffers __bio_clone: don't calculate hw/phys segment counts block: allow queue dma_alignment of zero blktrace: Add blktrace ioctls to SCSI generic devices
Diffstat (limited to 'fs')
-rw-r--r--fs/bio.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/bio.c b/fs/bio.c
index d59ddbf79626..242e409dab4b 100644
--- a/fs/bio.c
+++ b/fs/bio.c
@@ -248,11 +248,13 @@ inline int bio_hw_segments(struct request_queue *q, struct bio *bio)
248 */ 248 */
249void __bio_clone(struct bio *bio, struct bio *bio_src) 249void __bio_clone(struct bio *bio, struct bio *bio_src)
250{ 250{
251 struct request_queue *q = bdev_get_queue(bio_src->bi_bdev);
252
253 memcpy(bio->bi_io_vec, bio_src->bi_io_vec, 251 memcpy(bio->bi_io_vec, bio_src->bi_io_vec,
254 bio_src->bi_max_vecs * sizeof(struct bio_vec)); 252 bio_src->bi_max_vecs * sizeof(struct bio_vec));
255 253
254 /*
255 * most users will be overriding ->bi_bdev with a new target,
256 * so we don't set nor calculate new physical/hw segment counts here
257 */
256 bio->bi_sector = bio_src->bi_sector; 258 bio->bi_sector = bio_src->bi_sector;
257 bio->bi_bdev = bio_src->bi_bdev; 259 bio->bi_bdev = bio_src->bi_bdev;
258 bio->bi_flags |= 1 << BIO_CLONED; 260 bio->bi_flags |= 1 << BIO_CLONED;
@@ -260,8 +262,6 @@ void __bio_clone(struct bio *bio, struct bio *bio_src)
260 bio->bi_vcnt = bio_src->bi_vcnt; 262 bio->bi_vcnt = bio_src->bi_vcnt;
261 bio->bi_size = bio_src->bi_size; 263 bio->bi_size = bio_src->bi_size;
262 bio->bi_idx = bio_src->bi_idx; 264 bio->bi_idx = bio_src->bi_idx;
263 bio_phys_segments(q, bio);
264 bio_hw_segments(q, bio);
265} 265}
266 266
267/** 267/**