block: restore the meaning of rq->data_len to the true data length
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Tue, 4 Mar 2008 10:17:11 +0000 (11:17 +0100)
committerJens Axboe <axboe@carl.home.kernel.dk>
Tue, 4 Mar 2008 10:17:11 +0000 (11:17 +0100)
commit7a85f8896f4b4a4a0249563b92af9e3161a6b467
tree616c62e3c96237e874fc0f47133fbca2160913b5
parent89b6e743788516491846724d7ef89bcac7ac9c99
block: restore the meaning of rq->data_len to the true data length

The meaning of rq->data_len was changed to the length of an allocated
buffer from the true data length. It breaks SG_IO friends and
bsg. This patch restores the meaning of rq->data_len to the true data
length and adds rq->extra_len to store an extended length (due to
drain buffer and padding).

This patch also removes the code to update bio in blk_rq_map_user
introduced by the commit 40b01b9bbdf51ae543a04744283bf2d56c4a6afa.
The commit adjusts bio according to memory alignment
(queue_dma_alignment). However, memory alignment is NOT padding
alignment. This adjustment also breaks SG_IO friends and bsg. Padding
alignment needs to be fixed in a proper way (by a separate patch).

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Jens Axboe <axboe@carl.home.kernel.dk>
block/blk-core.c
block/blk-map.c
block/blk-merge.c
block/bsg.c
block/scsi_ioctl.c
drivers/ata/libata-scsi.c
include/linux/blkdev.h