]> git.baikalelectronics.ru Git - kernel.git/commit
xen-blkfront: use a different scatterlist for each request
authorRoger Pau Monne <roger.pau@citrix.com>
Thu, 2 May 2013 08:58:50 +0000 (10:58 +0200)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Wed, 8 May 2013 12:46:51 +0000 (08:46 -0400)
commite684d58bbc0ea36933d2547287075d74db66c396
treeacee055fae1b48f1c986dec29481d2b999dd3127
parent8469e803cea0fcfbdceee39fce7a121380e33857
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>
drivers/block/xen-blkfront.c