linux-kernel-test/drivers/target
Nicholas Bellinger 7b4deef5d9 target: Enforce hw_max_sectors for SCF_SCSI_DATA_SG_IO_CDB
Instead of depending upon a max_sectors value that may be set via
configfs based upon original HW queue limitations, go ahead and convert to using
the hw_max_sectors reported by the backend device in order to determine when
to reject an I/O's who's sector count exceeds what is supported by the backend
with a single se_cmd descriptor.

It addresses a potential case where se_dev_attrib.max_sectors for IBLOCK
backends has already been set via queue_max_sectors() to something small
like max_sectors=32 (LVM, DRBD may do this), resulting typically sized
SCF_SCSI_DATA_SG_IO_CDB to be incorrectly rejected with invalid_cdb_field
in transport_generic_cmd_sequencer().

Reviewed-by: Christoph Hellwig <hch@lst.de>
Cc: Roland Dreier <roland@purestorage.com>
Cc: Andy Grover <agrover@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
2012-05-09 15:05:16 -07:00
..
iscsi target/iscsi: cleanup some allocation style issues 2012-05-06 15:02:33 -07:00
loopback target: Rename target_allocate_tasks to target_setup_cmd_from_cdb 2012-04-14 17:40:36 -07:00
tcm_fc tcm_fc: Remove use of transport_do_task_sg_chain() 2012-04-14 17:40:31 -07: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: replace ->execute_task with ->execute_cmd 2012-05-06 15:11:14 -07:00
target_core_alua.h target: replace ->execute_task with ->execute_cmd 2012-05-06 15:11:14 -07:00
target_core_cdb.c target: replace ->execute_task with ->execute_cmd 2012-05-06 15:11:14 -07:00
target_core_configfs.c target: remove obvious warnings 2012-03-15 19:16:09 -07:00
target_core_device.c target: replace ->execute_task with ->execute_cmd 2012-05-06 15:11:14 -07:00
target_core_fabric_configfs.c target: Use array_zalloc for device_list 2012-03-15 19:15:51 -07:00
target_core_fabric_lib.c target: remove useless casts 2011-12-14 11:28:07 +00:00
target_core_file.c target: remove struct se_task 2012-05-06 15:11:26 -07:00
target_core_file.h target: remove struct se_task 2012-05-06 15:11:26 -07:00
target_core_hba.c target: header reshuffle, part2 2011-12-14 11:26:05 +00:00
target_core_iblock.c target: remove struct se_task 2012-05-06 15:11:26 -07:00
target_core_iblock.h target: remove struct se_task 2012-05-06 15:11:26 -07:00
target_core_internal.h target: move the state and execute lists to the command 2012-05-06 15:11:26 -07:00
target_core_pr.c target: replace ->execute_task with ->execute_cmd 2012-05-06 15:11:14 -07:00
target_core_pr.h target: replace ->execute_task with ->execute_cmd 2012-05-06 15:11:14 -07:00
target_core_pscsi.c target: remove struct se_task 2012-05-06 15:11:26 -07:00
target_core_pscsi.h target: remove struct se_task 2012-05-06 15:11:26 -07:00
target_core_rd.c target: remove struct se_task 2012-05-06 15:11:26 -07:00
target_core_rd.h target: don't limit transfer sizes for the ramdisk backend 2012-04-14 17:40:30 -07:00
target_core_stat.c target: remove obvious warnings 2012-03-15 19:16:09 -07:00
target_core_tmr.c target: remove the t_task_cdbs_ex_left field in struct se_cmd 2012-05-06 15:11:27 -07:00
target_core_tpg.c target: Remove obsolete DF_READ_ONLY usage 2012-04-14 16:04:58 -07:00
target_core_transport.c target: Enforce hw_max_sectors for SCF_SCSI_DATA_SG_IO_CDB 2012-05-09 15:05:16 -07:00
target_core_ua.c target: Use array_zalloc for device_list 2012-03-15 19:15:51 -07:00
target_core_ua.h