linux/drivers/target
Sebastian Andrzej Siewior 65b0c78d5a 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>
2011-12-06 06:00:58 +00:00
..
iscsi target: remove unused struct fields 2011-12-06 06:00:56 +00:00
loopback target: remove the t_tasks_bidi se_cmd field 2011-12-06 06:00:53 +00:00
tcm_fc target: Drop config_item_name usage in fabric TFO->free_wwn() 2011-12-06 06:00:51 +00:00
Kconfig iscsi-target: Add iSCSI fabric support for target v4.1 2011-07-26 09:16:43 +00:00
Makefile target: remove the ->transport_split_cdb callback in se_cmd 2011-10-24 03:21:15 +00:00
target_core_alua.c target: remove unused struct fields 2011-12-06 06:00:56 +00:00
target_core_alua.h target: pass the se_task to the CDB emulation callback 2011-11-04 08:00:17 +00:00
target_core_cdb.c target: Fix page length in emulated INQUIRY VPD page 86h 2011-12-06 06:00:56 +00:00
target_core_cdb.h target: use ->exectute_task for all CDB emulation 2011-11-04 10:44:35 +00:00
target_core_configfs.c target: remove the unused se_dev_list 2011-12-06 06:00:57 +00:00
target_core_device.c target: remove the unused se_dev_list 2011-12-06 06:00:57 +00:00
target_core_fabric_configfs.c target: Remove unneeded version.h includes 2011-10-11 04:10:19 +00:00
target_core_fabric_lib.c drivers/target: Add export.h to files as required. 2011-10-31 19:31:58 -04:00
target_core_file.c target/file: walk properly over sg list 2011-12-06 06:00:57 +00:00
target_core_file.h target: make the ->get_cdb method optional 2011-10-24 03:21:11 +00:00
target_core_hba.c drivers/target: Add module.h to drivers/target files as required. 2011-10-31 19:31:59 -04:00
target_core_hba.h
target_core_iblock.c target: remove the t_tasks_fua se_cmd field 2011-12-06 06:00:52 +00:00
target_core_iblock.h target: make the ->get_cdb method optional 2011-10-24 03:21:11 +00:00
target_core_pr.c target: Address legacy PYX_TRANSPORT_* return code breakage 2011-12-06 06:00:49 +00:00
target_core_pr.h target: pass the se_task to the CDB emulation callback 2011-11-04 08:00:17 +00:00
target_core_pscsi.c target: Address legacy PYX_TRANSPORT_* return code breakage 2011-12-06 06:00:49 +00:00
target_core_pscsi.h target: cleanup pscsi request submission 2011-10-24 03:20:44 +00:00
target_core_rd.c target/rd: fix or rewrite the copy routine 2011-12-06 06:00:58 +00:00
target_core_rd.h target: make the ->get_cdb method optional 2011-10-24 03:21:11 +00:00
target_core_stat.c target: Remove unneeded version.h includes 2011-10-11 04:10:19 +00:00
target_core_stat.h [SCSI] target: add initial statistics 2011-03-23 11:36:50 -05:00
target_core_tmr.c target: Address legacy PYX_TRANSPORT_* return code breakage 2011-12-06 06:00:49 +00:00
target_core_tpg.c drivers/target: Add export.h to files as required. 2011-10-31 19:31:58 -04:00
target_core_transport.c target: remove unused struct fields 2011-12-06 06:00:56 +00:00
target_core_ua.c target: Remove unneeded version.h includes 2011-10-11 04:10:19 +00:00
target_core_ua.h