Skip to contentSkip to conversation

tcm: Unify subsystem plugin control CDB emulation

PATCH In review Nicholas A. Bellinger 1 participant 1 message Oct 13, 2010 SCSI

lore
Share & tools
lore
#0 lore raw

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(-)