tcm: Unify subsystem plugin control CDB emulation
cover tcm: Unify subsystem plugin control CDB emulation
From: Nicholas Bellinger <[email protected]>
Greetings folks,
This patch series pushes the remaining SPC-3 control path CDB emualation for INQUIRY, READ_CAPACITY_*, UNMAP and WRITE_SAME w/ UNMAP=1, and SYNCHRONIZE_CACHE_* subsystem plugin handling into generic TCM code.
It follows Christoph's recommendation to pick off the non SCF_SCSI_DATA_SG_IO_CDB struct se_tasks before hitting struct se_subsysem_api->do_task(), and removal of struct se_subsystem_api_cdb initially added in commit 3712c6da407.
So far this has been tested with TCM/IBLOCK and TCM/FILEIO subsystem plugins on v2.6.36-rc7 x86 HVM with sg_inquiry, sg_readcap, sg_unmap, sg_write_same -[ST] -U, and sg_sync.
Thanks again go out to hch for pushing for IBLOCK and FILEIO to become drivers/scsi independent and save yet another ~80 LOC from the v4.0 tree! Thanks Christoph!!!
Nicholas Bellinger (5):
tcm: Move transport_emulate_control_cdb() into
__transport_execute_tasks()
tcm: Unify INQUIRY subsystem plugin handling
tcm: Unify READ_CAPACITY_* subsystem plugin handling
tcm: Unify UNMAP and WRITE_SAME w/ UNMAP=1 subsystem plugin handling
tcm: Unify SYNCHRONIZE_CACHE_* subsystem plugin handling
drivers/target/target_core_file.c | 101 +++++++++++------------------ drivers/target/target_core_iblock.c | 113 ++++++++++++-------------------- drivers/target/target_core_rd.c | 89 ++++++++----------------- drivers/target/target_core_transport.c | 111 ++++++++++++++++--------------- include/target/target_core_transport.h | 48 ++++++++------ 5 files changed, 193 insertions(+), 269 deletions(-)