linux/drivers/target
Nicholas Bellinger 7b745c84a9 target/file: Add WRITE_SAME w/ UNMAP=0 emulation support
This patch adds support for emulation of WRITE_SAME w/ UNMAP=0 within
fd_execute_write_same() backend code.

The emulation uses vfs_writev() to submit a locally populated buffer
from the received WRITE_SAME scatterlist block for duplication, and by
default enforces a limit of max_write_same_len=0x1000 (8192) sectors up
to the limit of 1024 iovec entries for the single call to vfs_writev().

It also sets max_write_same_len to the operational default at setup ->
fd_configure_device() time.

Tested with 512, 1k, 2k, and 4k block_sizes.

(asias: convert to vzalloc)

Cc: Martin K. Petersen <martin.petersen@oracle.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Asias He <asias@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
2013-02-20 12:29:04 -08:00
..
iscsi iscsi-target: Enforce individual network portal export once per TargetName 2013-02-19 17:58:12 -08:00
loopback target: kill struct se_subsystem_dev 2012-11-06 20:55:43 -08:00
sbp sbp-target: fix error path in sbp_make_tpg() 2012-12-12 21:17:25 -08:00
tcm_fc tcm_fc: Do not report target role when target is not defined 2013-01-10 20:08:58 -08:00
Kconfig sbp-target: Initial merge of firewire/ieee-1394 target mode support 2012-05-09 15:25:17 -07:00
Makefile target: move code for CDB emulation 2012-07-16 17:27:45 -07:00
target_core_alua.c target: Use TCM_NO_SENSE for initialisation 2013-01-10 20:07:10 -08:00
target_core_alua.h target: pass sense_reason as a return value 2012-11-06 20:55:46 -08:00
target_core_configfs.c target: Add device attribute to expose config_item_name for INQUIRY model 2013-02-13 11:27:58 -08:00
target_core_device.c target: Fix lookup of dynamic NodeACLs during cached demo-mode operation 2013-02-18 18:47:20 -08:00
target_core_fabric_configfs.c target: Add missing mapped_lun bounds checking during make_mappedlun setup 2013-02-18 18:47:28 -08:00
target_core_fabric_lib.c target: Update copyright information to 2012 2012-11-27 22:47:02 -08:00
target_core_file.c target/file: Add WRITE_SAME w/ UNMAP=0 emulation support 2013-02-20 12:29:04 -08:00
target_core_file.h target: kill struct se_subsystem_dev 2012-11-06 20:55:43 -08:00
target_core_hba.c target: Update copyright information to 2012 2012-11-27 22:47:02 -08:00
target_core_iblock.c target: Fix error checking for UNMAP commands 2013-02-13 12:16:05 -08:00
target_core_iblock.h target: kill struct se_subsystem_dev 2012-11-06 20:55:43 -08:00
target_core_internal.h target: Fix lookup of dynamic NodeACLs during cached demo-mode operation 2013-02-18 18:47:20 -08:00
target_core_pr.c target: Use TCM_NO_SENSE for initialisation 2013-01-10 20:07:10 -08:00
target_core_pr.h target: pass sense_reason as a return value 2012-11-06 20:55:46 -08:00
target_core_pscsi.c target: Update copyright information to 2012 2012-11-27 22:47:02 -08:00
target_core_pscsi.h target: kill struct se_subsystem_dev 2012-11-06 20:55:43 -08:00
target_core_rd.c target_core_rd: break out unterminated loop during copy 2013-02-13 11:54:29 -08:00
target_core_rd.h target: kill struct se_subsystem_dev 2012-11-06 20:55:43 -08:00
target_core_sbc.c target: Fix sense data for out-of-bounds IO operations 2013-02-13 11:54:50 -08:00
target_core_spc.c target: Fix parameter list length checking in MODE SELECT 2013-02-13 12:16:11 -08:00
target_core_stat.c target: Update copyright information to 2012 2012-11-27 22:47:02 -08:00
target_core_tmr.c target: Remove useless if statement 2013-02-13 11:27:22 -08:00
target_core_tpg.c target: Fix lookup of dynamic NodeACLs during cached demo-mode operation 2013-02-18 18:47:20 -08:00
target_core_transport.c target: Fix error checking for UNMAP commands 2013-02-13 12:16:05 -08:00
target_core_ua.c target: Update copyright information to 2012 2012-11-27 22:47:02 -08:00
target_core_ua.h target: pass sense_reason as a return value 2012-11-06 20:55:46 -08:00