1. 04 5月, 2013 1 次提交
  2. 19 2月, 2013 1 次提交
    • N
      target: Fix lookup of dynamic NodeACLs during cached demo-mode operation · fcf29481
      Nicholas Bellinger 提交于
      This patch fixes a bug in core_tpg_check_initiator_node_acl() ->
      core_tpg_get_initiator_node_acl() where a dynamically created
      se_node_acl generated during session login would be skipped during
      subsequent lookup due to the '!acl->dynamic_node_acl' check, causing
      a new se_node_acl to be created with a duplicate ->initiatorname.
      
      This would occur when a fabric endpoint was configured with
      TFO->tpg_check_demo_mode()=1 + TPF->tpg_check_demo_mode_cache()=1
      preventing the release of an existing se_node_acl during se_session
      shutdown.
      
      Also, drop the unnecessary usage of core_tpg_get_initiator_node_acl()
      within core_dev_init_initiator_node_lun_acl() that originally
      required the extra '!acl->dynamic_node_acl' check, and just pass
      the configfs provided se_node_acl pointer instead.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      fcf29481
  3. 14 2月, 2013 1 次提交
  4. 16 11月, 2012 1 次提交
    • N
      target: Add/check max_write_same_len device attribute + update block limits VPD · 773cbaf7
      Nicholas Bellinger 提交于
      This patch adds a new max_write_same_len device attribute for use with
      WRITE_SAME w/ UNMAP=0 backend emulation.  This can be useful for
      lowering the default backend value (IBLOCK uses 0xFFFF).
      
      Also, update block limits VPD emulation code in spc_emulate_evpd_b0() to
      report MAXIMUM WRITE SAME LENGTH, and enforce max_write_same_len during
      sbc_parse() -> sbc_setup_write_same() CDB sanity checking for all emulated
      WRITE_SAME w/ UNMAP=0 cases.
      
      (Robert: Move max_write_same_len check in sbc_setup_write_same() to
               check both WRITE_SAME w/ UNMAP=1 and w/ UNMAP=0 cases)
      
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Martin K. Petersen <martin.petersen@oracle.com>
      Cc: Robert Elliott <Elliott@hp.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      773cbaf7
  5. 07 11月, 2012 3 次提交
  6. 17 7月, 2012 6 次提交
  7. 07 5月, 2012 2 次提交
  8. 26 2月, 2012 2 次提交
    • R
      target: Untangle front-end and back-end meanings of max_sectors attribute · 015487b8
      Roland Dreier 提交于
      se_dev_attrib.max_sectors currently has two independent meanings:
      
       - It is reported in the block limits VPD page as the maximum transfer
         length, ie the largest IO that the front-end (fabric) can handle.
         Also the target core doesn't enforce this maximum transfer length.
      
       - It is used to hold the size of the largest IO that the back-end can
         handle, so we know when to split SCSI commands into multiple tasks.
      
      Fix this by adding a new se_dev_attrib.fabric_max_sectors to hold the
      maximum transfer length, and checking incoming IOs against that limit.
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      015487b8
    • N
      target: Add TMR_ABORT_TASK task management support · 3d28934a
      Nicholas Bellinger 提交于
      This patch adds initial support for TMR_ABORT_TASK ops for se_cmd
      descriptors using se_sess->sess_cmd_list and se_cmd->cmd_kref counting.
      
      It will perform an explict abort for all outstanding se_cmd ops based
      upon tmr->ref_task_tag that have not been set CMD_T_COMPLETE.
      It will cancel se_cmd->work and wait for backing I/O to complete before
      attempting to send SAM_STAT_TASK_ABORTED and perform
      target_put_sess_cmd() to release the referenced descriptor.
      
      It also adds a CMD_T_ABORTED check into transport_complete_task() to
      catch the completion from backend I/O that has been aborted, and
      updates transport_wait_for_tasks() to allow CMD_T_ABORTED usage with
      core_tmr_abort_task() context.
      Reported-by: NRoland Dreier <roland@purestorage.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      3d28934a
  9. 18 1月, 2012 1 次提交
    • S
      target: fix return code of core_tpg_.*_lun · 8d9efe53
      Sebastian Andrzej Siewior 提交于
      - core_tpg_pre_addlun()
        returns always ERR_PTR() or the pointer, never NULL. The additional
        check for NULL in core_dev_add_lun() is not required.
      
      - core_tpg_pre_dellun()
        returns always ERR_PTR() or the pointer, never NULL. The check for NULL
        in core_dev_del_lun() is wrong. The third argument (int *) is never
        used, remove it.
      
      - core_dev_add_lun()
        returns always NULL or the pointer, never ERR_PTR. The check for
        IS_ERR() is not required.
      
      (nab: Convert core_dev_add_lun() use err.h macros for failure
      handling to be consistent with the rest of target_core_fabric_configfs.c
      callers)
      Signed-off-by: NSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      8d9efe53
  10. 14 12月, 2011 1 次提交
    • C
      target: reshuffle headers · e26d99ae
      Christoph Hellwig 提交于
      Create a new headers, drivers/target/target_core_internal.h that is supposed
      to hold all target_core-internal prototypes.  Move all non-exported includes
      from include/target to it, and merge the smaller prototype-only includes
      inside drivers/target into it as well.  Mark functions that were found to
      not be called outside their implementation file static.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      e26d99ae