remarkable-linux/block
FUJITA Tomonori afdc1a780e block: add bio_copy_user_iov support to blk_rq_map_user_iov
With this patch, blk_rq_map_user_iov uses bio_copy_user_iov when a low
level driver needs padding or a buffer in sg_iovec isn't aligned. That
is, it uses temporary kernel buffers instead of mapping user pages
directly.

When a LLD needs padding, later blk_rq_map_sg needs to extend the last
entry of a scatter list. bio_copy_user_iov guarantees that there is
enough space for padding by using temporary kernel buffers instead of
user pages.

blk_rq_map_user_iov needs buffers in sg_iovec to be aligned. The
comment in blk_rq_map_user_iov indicates that drivers/scsi/sg.c also
needs buffers in sg_iovec to be aligned. Actually, drivers/scsi/sg.c
works with unaligned buffers in sg_iovec (it always uses temporary
kernel buffers).

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: Tejun Heo <htejun@gmail.com>
Cc: Mike Christie <michaelc@cs.wisc.edu>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2008-04-21 09:50:08 +02:00
..
as-iosched.c block: kill swap_io_context() 2008-02-01 11:34:49 +01:00
blk-barrier.c block: fix blkdev_issue_flush() not detecting and passing EOPNOTSUPP back 2008-03-04 11:47:46 +01:00
blk-core.c unexport blk_{get,put}_queue 2008-03-04 11:28:32 +01:00
blk-exec.c block: make core bits checkpatch compliant 2008-02-01 09:26:33 +01:00
blk-ioc.c cfq-iosched: add hlist for browsing parallel to the radix tree 2008-02-19 10:04:00 +01:00
blk-map.c block: add bio_copy_user_iov support to blk_rq_map_user_iov 2008-04-21 09:50:08 +02:00
blk-merge.c block: restore the meaning of rq->data_len to the true data length 2008-03-04 11:17:11 +01:00
blk-settings.c Fix bounce setting for 64-bit 2008-04-02 09:06:44 +02:00
blk-sysfs.c block: make core bits checkpatch compliant 2008-02-01 09:26:33 +01:00
blk-tag.c block/blk-tag.c should #include "blk.h" 2008-03-04 11:28:24 +01:00
blk.h proper prototype for blk_dev_init() 2008-03-04 11:28:29 +01:00
blktrace.c blktrace: Add blktrace ioctls to SCSI generic devices 2008-01-28 10:04:46 +01:00
bsg.c [SCSI] bsg: no need to set BSG_F_BLOCK bit in bsg_complete_all_commands 2008-04-18 11:48:43 -05:00
cfq-iosched.c cfq-iosched: do not leak ioc_data across iosched switches 2008-04-10 08:28:01 +02:00
compat_ioctl.c ide: remove broken/dangerous HDIO_[UNREGISTER,SCAN]_HWIF ioctls (take 3) 2008-04-18 00:46:24 +02:00
deadline-iosched.c block: let elv_register() return void 2007-12-18 08:29:28 +01:00
elevator.c elevator: make elevator_get() attempt to load the appropriate module 2008-02-19 10:20:37 +01:00
genhd.c genhd must_check warning fix 2008-03-12 12:34:37 -07:00
ioctl.c compat_ioctl: move common block ioctls to compat_blkdev_ioctl 2007-10-10 09:26:00 +02:00
Kconfig block: update git url for blktrace 2008-04-15 10:23:35 +02:00
Kconfig.iosched update I/O sched Kconfig help texts - CFQ is now default, not AS. 2007-02-17 20:08:22 +01:00
Makefile block: ll_rw_blk.c split, add blk-merge.c 2008-01-29 21:55:12 +01:00
noop-iosched.c block: let elv_register() return void 2007-12-18 08:29:28 +01:00
scsi_ioctl.c block: restore the meaning of rq->data_len to the true data length 2008-03-04 11:17:11 +01:00