[PATCH v5 00/22] SCSI target patches for kernel v4.11

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The most important changes in this patch series are:
* ABORT and LUN RESET handling is made synchronous.
* LUN lookup during ABORT handling is moved from the tcm_qla2xxx
  driver into the target core.
* A deadlock in the XCOPY implementation has been fixed.
* The SCSI target core is simplified significantly.

These patches have been tested against the iSCSI, ib_srpt and
tcm_qla2xxx target drivers.

Please review the patches that have not yet been reviewed,

Thanks,

Bart.

Changes between v4 and v5:
- Rebased this patch series on top of the for-next branch of
  git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending.git
  (commit b2c9652eba6c).
- Left out the transport_lookup_tmr_lun() call from core_tmr_abort_task()
  in patch "Make it possible to specify I_T nexus for SCSI abort".
- Left out the transport_cmd_check_stop() return value changes from patch
  "Introduce a target driver reference count per command".
- Introduced a new patch "Make transport_wait_for_tasks() show what it is
  waiting for".
- Improved handling of aborted TMFs in patch "Make ABORT and LUN RESET
  handling synchronous".
- Folded patch "Simplify session shutdown tests" into patch "Simplify session
  shutdown code".
- Restored the FABRIC_STOP tests in patch "Remove several state tests from the
  TMF code".

Changes between v3 and v4:
- The TMF workqueue initialization code has been moved from
  transport_alloc_session_tags() into transport_init_session() such that
  this queue is created for all types of sessions.
- The transport_wait_for_tasks() documentation no longer duplicates
  information that can be derived easily from the implementation of that
  function.
- Explained how the newly added return statement can be triggered in the
  description of patch "target: Stop execution if CMD_T_STOP has been set".
- Combined two patches into the new patch "target: Use the command
  reference counting mechanism consistently".
- Added a new patch "target: Move session check from target_put_sess_cmd()
  into target_release_cmd_kref()".
- Separated the target core refcnt from the target driver refcnt. See also
  "target: Introduce a target driver reference count per command".
- Dropped a TMF check from the patch that makes TMF handling synchronous.
  In the same patch a facility for showing the state of pending commands has
  been added and a command reference leak has been fixed in target_execute_cmd()
  (see also the transport_handle_abort() call added in that function).
- A new patch has been added: "target: Simplify session shutdown tests".
- transport_generic_free_cmd() has been modified such that it waits again
  for aborted commands until all tasks have completed.
- A bug in the XCOPY deadlock fix has been fixed, namely that that code no
  longer tries to increase the reference count of a device if that reference
  count had dropped to zero.

Changes between v2 and v3:
- Avoid that transport_free_session() can trigger a NULL pointer dereference.

Changes between v1 and v2:
- Introduced a new workqueue per session for task management functions.
- Renamed tmr_wq into alua_wq.

Bart Van Assche (22):
  target: Make it possible to specify I_T nexus for SCSI abort
  tcm_qla2xxx: Let the target core look up the LUN of the aborted cmd
  target: Introduce a target driver reference count per command
  target: Use the command reference counting mechanism consistently
  target: Make transport_wait_for_tasks() show what it is waiting for
  target: Make ABORT and LUN RESET handling synchronous
  target: Remove the SCF_SEND_DELAYED_TAS command flag
  target: Inline transport_check_aborted_status()
  target: Remove the write_pending_status() callback function
  target: Simplify session shutdown code
  target: Remove several state tests from the TMF code
  target: Simplify LUN RESET implementation
  target: Reduce number of __transport_wait_for_tasks() arguments
  target: Remove command flag CMD_T_TAS
  target: Remove unused arguments from __target_check_io_state()
  target: Change return type of transport_wait_for_tasks() into void
  target: Inline transport_put_cmd()
  target: Inline transport_lun_remove_cmd()
  target: Move target_remove_from_state_list() into
    target_release_cmd_kref()
  configfs: Introduce config_item_get_unless_zero()
  target: Introduce target_get_device() and target_put_device()
  target: Avoid that XCOPY commands trigger a deadlock

 Documentation/target/tcm_mod_builder.py      |   8 -
 drivers/infiniband/ulp/srpt/ib_srpt.c        |  12 +-
 drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c     |   6 -
 drivers/scsi/qla2xxx/qla_target.c            |  66 ++-
 drivers/scsi/qla2xxx/qla_target.h            |   2 +-
 drivers/scsi/qla2xxx/tcm_qla2xxx.c           |  38 +-
 drivers/target/iscsi/iscsi_target.c          |   7 +-
 drivers/target/iscsi/iscsi_target_configfs.c |  13 -
 drivers/target/iscsi/iscsi_target_erl1.c     |   8 +-
 drivers/target/loopback/tcm_loop.c           |   6 -
 drivers/target/sbp/sbp_target.c              |   6 -
 drivers/target/target_core_configfs.c        |   4 -
 drivers/target/target_core_device.c          |  12 +
 drivers/target/target_core_internal.h        |   6 +-
 drivers/target/target_core_tmr.c             | 122 ++----
 drivers/target/target_core_transport.c       | 573 ++++++++++++---------------
 drivers/target/target_core_xcopy.c           |  49 ++-
 drivers/target/tcm_fc/tcm_fc.h               |   1 -
 drivers/target/tcm_fc/tfc_cmd.c              |   7 -
 drivers/target/tcm_fc/tfc_conf.c             |   1 -
 drivers/usb/gadget/function/f_tcm.c          |   9 -
 drivers/vhost/scsi.c                         |   6 -
 drivers/xen/xen-scsiback.c                   |   6 -
 fs/configfs/item.c                           |   6 +
 include/linux/configfs.h                     |   1 +
 include/target/target_core_base.h            |  10 +-
 include/target/target_core_fabric.h          |   4 +-
 27 files changed, 378 insertions(+), 611 deletions(-)

-- 
2.11.0

--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux