linux/drivers/block
Roger Pau Monne b7649158a0 xen-blkfront: use a different scatterlist for each request
In blkif_queue_request blkfront iterates over the scatterlist in order
to set the segments of the request, and in blkif_completion blkfront
iterates over the raw request, which makes it hard to know the exact
position of the source and destination memory positions.

This can be solved by allocating a scatterlist for each request, that
will be keep until the request is finished, allowing us to copy the
data back to the original memory without having to iterate over the
raw request.

Oracle-Bug: 16660413 - LARGE ASYNCHRONOUS READS APPEAR BROKEN ON 2.6.39-400
CC: stable@vger.kernel.org
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reported-and-Tested-by: Anne Milicia <anne.milicia@oracle.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
2013-05-08 08:46:51 -04:00
..
aoe aoe: reserve enough headroom on skbs 2013-03-28 14:29:47 -04:00
drbd drbd: convert to idr_alloc() 2013-02-27 19:10:15 -08:00
mtip32xx mtip32xx: fix two smatch warnings 2013-04-04 09:03:41 +02:00
paride drivers/block/paride: remove depends on CONFIG_EXPERIMENTAL 2013-01-21 14:52:42 -08:00
rsxx rsxx: remove unused variable 2013-03-26 14:48:12 -06:00
xen-blkback xen-blkback: allocate list of pending reqs in small chunks 2013-05-07 09:42:17 -04:00
amiflop.c fs: move code out of buffer.c 2012-01-03 22:54:07 -05:00
ataflop.c block: unexport DISK_EVENT_MEDIA_CHANGE for legacy/fringe drivers 2011-04-21 21:33:05 +02:00
brd.c block: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:16 +08:00
cciss_cmd.h cciss: use new doorbell-bit-5 reset method 2011-05-06 08:23:55 -06:00
cciss_scsi.c cciss: fix handling of protocol error 2012-09-18 11:57:08 +02:00
cciss_scsi.h cciss: add cciss_tape_cmds module paramter 2011-05-06 08:23:59 -06:00
cciss.c cciss: fix invalid use of sizeof in cciss_find_cfgtables() 2013-03-22 12:22:49 -06:00
cciss.h cciss: Adds simple mode functionality 2011-08-08 11:40:15 +02:00
cpqarray.c Drivers: block: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
cpqarray.h
cryptoloop.c
DAC960.c Merge branch 'for-3.9/drivers' of git://git.kernel.dk/linux-block 2013-02-28 13:16:07 -08:00
DAC960.h
floppy.c floppy: destroy floppy workqueue before cleaning up the queue 2012-11-23 14:32:54 +01:00
hd.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ida_cmd.h
ida_ioctl.h
Kconfig block: IBM RamSan 70/80 branding changes. 2013-03-11 19:53:55 +01:00
loop.c for-linus-20130409 2013-04-09 12:05:41 -07:00
Makefile Merge branch 'delete-xt-disk' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux into for-3.9/drivers 2013-02-14 16:29:34 +01:00
mg_disk.c mg_disk: fix error return code in mg_probe() 2013-03-28 09:43:43 -06:00
nbd.c nbd: fix sparse warning 2013-02-27 19:10:22 -08:00
nvme.c Merge git://git.infradead.org/users/willy/linux-nvme 2013-03-22 16:43:53 -07:00
osdblk.c block: Add bio_clone_bioset(), bio_clone_kmalloc() 2012-09-09 10:35:39 +02:00
pktcdvd.c pktcdvd: Switch to bio_kmalloc() 2012-09-09 10:35:39 +02:00
ps3disk.c Drivers: block: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
ps3vram.c Drivers: block: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
rbd_types.h rbd: get rid of RBD_MAX_SEG_NAME_LEN 2012-12-17 08:37:29 -06:00
rbd.c rbd: don't zero-fill non-image object requests 2013-03-29 11:32:07 -07:00
smart1,2.h fix typos 'comamnd' -> 'command' in comments 2011-02-02 11:31:21 +01:00
sunvdc.c sunvdc: Fix off-by-one in generic_request(). 2013-02-14 11:49:01 -08:00
swim3.c drivers/block/swim3.c: fix null pointer dereference 2013-02-22 10:42:46 +01:00
swim_asm.S
swim.c swim: Add missing spinlock init 2013-02-09 14:23:33 +01:00
sx8.c block, sx8: fix pointer math issue getting fw version 2012-03-03 19:44:39 +01:00
umem.c Drivers: block: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
umem.h
virtio_blk.c Various minor fixes, but a slightly more complex one to fix the per-cpu overload 2013-01-20 16:44:28 -08:00
xen-blkfront.c xen-blkfront: use a different scatterlist for each request 2013-05-08 08:46:51 -04:00
xsysace.c Drivers: block: remove __dev* attributes. 2013-01-03 15:57:15 -08:00
z2ram.c drivers/block/z2ram.c: correct printing of sector_t 2010-10-28 06:15:26 -06:00