linux/block
Jens Axboe c26156b253 block: hold extra reference to bio in blk_rq_map_user_iov()
If the size passed in is OK but we end up mapping too many segments,
we call the unmap path directly like from IO completion. But from IO
completion we have an extra reference to the bio, so this error case
goes OOPS when it attempts to free and already free bio.

Fix it by getting an extra reference to the bio before calling the
unmap failure case.

Reported-by: Petr Vandrovec <vandrove@vc.cvut.cz>

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2008-11-18 15:08:56 +01:00
..
as-iosched.c
blk-barrier.c
blk-core.c blk: move blk_delete_timer call in end_that_request_last 2008-11-06 08:41:56 +01:00
blk-exec.c
blk-integrity.c block: Switch blk_integrity_compare from bdev to gendisk 2008-10-09 08:56:21 +02:00
blk-ioc.c
blk-map.c block: hold extra reference to bio in blk_rq_map_user_iov() 2008-11-18 15:08:56 +01:00
blk-merge.c block: remove unused ll_new_mergeable() 2008-11-06 08:41:55 +01:00
blk-settings.c block: move q->unplug_work initialization 2008-10-17 08:46:57 +02:00
blk-softirq.c
blk-sysfs.c
blk-tag.c
blk-timeout.c Block: use round_jiffies_up() 2008-11-06 08:42:49 +01:00
blk.h block: remove __generic_unplug_device() from exports 2008-10-17 14:03:08 +02:00
blktrace.c
bsg.c [PATCH] switch scsi_cmd_ioctl() to passing fmode_t 2008-10-21 07:47:14 -04:00
cfq-iosched.c
cmd-filter.c [PATCH] introduce fmode_t, do annotations 2008-10-21 07:47:06 -04:00
compat_ioctl.c compat_blkdev_driver_ioctl: Remove unused variable warning 2008-10-23 10:28:25 -07:00
deadline-iosched.c
elevator.c block: add timer on blkdev_dequeue_request() not elv_next_request() 2008-11-06 08:41:55 +01:00
genhd.c block: fix boot failure with CONFIG_DEBUG_BLOCK_EXT_DEVT=y and nash 2008-11-18 15:08:56 +01:00
ioctl.c block: make add_partition() return pointer to hd_struct 2008-11-18 15:08:56 +01:00
Kconfig
Kconfig.iosched
Makefile
noop-iosched.c
scsi_ioctl.c [PATCH] switch scsi_cmd_ioctl() to passing fmode_t 2008-10-21 07:47:14 -04:00