diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2011-11-30 13:48:30 +0400 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2011-12-06 10:00:58 +0400 |
commit | 65b0c78d5a0ca2cb82b7b9f54f855896e0d7fc10 (patch) | |
tree | 64a27fa0aa08795154674909ccbf2106f56783eb /drivers/target/target_core_device.c | |
parent | 5bff9e8584fbcdb361dada5a0425724b9e31e608 (diff) | |
download | linux-65b0c78d5a0ca2cb82b7b9f54f855896e0d7fc10.tar.xz |
target/rd: fix or rewrite the copy routine
So the code assumes that the sg list is only a array while in reality
loopback SGL memory via scsi_cmnd into target-core may be already
chained. This patch converts ramdisk code to use sg_miter logic from
scatterlist.h in order to properly support passthrough SGL usage with
transport_generic_map_mem_to_cmd() via loopback.
With this patch the bug goes away. However after umount/mount of the
device my files are gone. So something is still not right. After looking
at it for a while I decided to rewrite the that part of the code and now
things do work for me.
For reference:
- http://article.gmane.org/gmane.linux.scsi.target.devel/595
the sg_next() conversion
- http://article.gmane.org/gmane.linux.scsi.target.devel/602
the rewrite of the copy code
(nab: Fix compile warning in rd_MEMCPY)
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: stable@kernel.org
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target/target_core_device.c')
0 files changed, 0 insertions, 0 deletions