1. 27 3月, 2015 2 次提交
  2. 07 3月, 2015 1 次提交
    • N
      target: Add target_show_dynamic_sessions attribute helper · f8e471f9
      Nicholas Bellinger 提交于
      This patch adds a new helper function that can be used by fabric driver
      TPG attributes for dumping the list of active sessions with a dynamically
      generated se_node_acl. (generate_node_acl=1).
      
      It prints one se_node_acl->initiatorname per line, up to PAGE_SIZE which
      is due to the current limitiation of single page attribute output within
      sysfs and configfs code.
      
      Note that if a session is referencing a explicit NodeACL, the InitiatorName
      will not appear within dynamic_sessions output.
      Reported-by: NAndy Grover <agrover@redhat.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      f8e471f9
  3. 13 2月, 2015 2 次提交
    • N
      target: Fix PR_APTPL_BUF_LEN buffer size limitation · f161d4b4
      Nicholas Bellinger 提交于
      This patch addresses the original PR_APTPL_BUF_LEN = 8k limitiation
      for write-out of PR APTPL metadata that Martin has recently been
      running into.
      
      It changes core_scsi3_update_and_write_aptpl() to use vzalloc'ed
      memory instead of kzalloc, and increases the default hardcoded
      length to 256k.
      
      It also adds logic in core_scsi3_update_and_write_aptpl() to double
      the original length upon core_scsi3_update_aptpl_buf() failure, and
      retries until the vzalloc'ed buffer is large enough to accommodate
      the outgoing APTPL metadata.
      Reported-by: NMartin Svec <martin.svec@zoner.cz>
      Cc: stable@vger.kernel.org
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      f161d4b4
    • S
      iscsi/iser-target: Support multi-sequence sendtargets text response · e4f4e801
      Sagi Grimberg 提交于
      In case sendtargets response is larger than initiator MRDSL, we
      send a partial sendtargets response (setting F=0, C=1, TTT!=0xffffffff),
      accept a consecutive empty text message and send the rest of the payload.
      In case we are done, we set F=1, C=0, TTT=0xffffffff.
      We do that by storing the sendtargets response bytes done under
      the session.
      
      This patch also makes iscsit_find_cmd_from_itt public for isert.
      
      (Re-add cmd->maxcmdsn_inc and clear in iscsit_build_text_rsp - nab)
      Signed-off-by: NSagi Grimberg <sagig@mellanox.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      e4f4e801
  4. 05 2月, 2015 1 次提交
  5. 31 1月, 2015 1 次提交
  6. 10 1月, 2015 1 次提交
  7. 04 12月, 2014 1 次提交
  8. 02 12月, 2014 9 次提交
    • N
      target: Add DEF_TB_DEFAULT_ATTRIBS macro for virtual device attrs · e6c39f70
      Nicholas Bellinger 提交于
      This helper macro adds the default set of 30 device attributes for
      virtual devices from existing target_core_configfs.c code, and moves
      the definitions into a single macro to create the structs necessary
      for backend drivers.
      
      It allows them to populate their own external struct configfs_attribute
      for se_subsystem_api->tb_cits.tb_dev_attrib_cit.ct_attrs.
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      e6c39f70
    • N
      target: Add EXPORT_SYMBOL for existing se_dev_set_* · d30cd123
      Nicholas Bellinger 提交于
      Now that target_core_backend_configfs.h macros will be using these
      se_dev_set attribute functions externally to allow backend drivers
      to populate different attributes, go ahead and add EXPORT_SYMBOL()
      for the existing default set of 30 device attributes.
      
      Also update target_core_backend.h with proper function prototypes.
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      d30cd123
    • N
      target: Add target_core_backend_configfs.h helper macros · 7a23f890
      Nicholas Bellinger 提交于
      This patch adds a number of configfs e-attr macros following
      what existing target_core_configfs.c code does for internal
      target_backend_dev_attrib setup, and similar to how target
      fabric drivers allow for external config_item_type + cit->ct_attrs.
      assignment.
      
      This is useful for backend drivers like PSCSI who need to only
      expose a small subset of device attributes, while still retaining
      a default list of attributes for other backend drivers like
      IBLOCK, FILEIO, RAMDISK, and TCMU.
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      7a23f890
    • N
      target: Move dev_stat_cit to struct se_subsystem_api · d23ab570
      Nicholas Bellinger 提交于
      This patch adds support for dev_stat_cit as an external config_item_type
      using TB_CIT_SETUP() helper macro, and sets only ct_group_ops following
      existing code.
      
      It updates target_core_make_subdev() + target_core_setup_dev_attrib_cit() +
      struct target_backend_cits, and drops left-over target_core_dev_stat_cit
      from target_core_configfs.c code and update comments.
      
      This patch introduces no functional change from existing code.
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      d23ab570
    • N
      target: Move dev_alua_tg_pt_gps_cit to struct se_subsystem_api · 72aca57b
      Nicholas Bellinger 提交于
      This patch adds support for dev_alua_tg_pt_gps_cit as an external config_item_type
      using TB_CIT_SETUP() helper macro, and sets only ct_group_ops following
      existing code.
      
      It updates target_core_make_subdev() + target_core_setup_dev_attrib_cit() +
      struct target_backend_cits, and drops left-over target_core_dev_alua_tg_pt_gps_cit
      from target_core_configfs.c code and update comments.
      
      This patch introduces no functional change from existing code.
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      72aca57b
    • N
      target: Move dev_wwn_cit to struct se_subsystem_api · f8d389c6
      Nicholas Bellinger 提交于
      This patch adds support for dev_wwn_cit as an external config_item_type
      using TB_CIT_SETUP() helper macro, and sets both ct_item_ops + ct_attr
      following existing code.
      
      It updates target_core_make_subdev() + target_core_setup_dev_attrib_cit() +
      struct target_backend_cits, and drops left-over target_core_dev_wwn_cit
      from target_core_configfs.c code and update comments.
      
      This patch introduces no functional change from existing code.
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      f8d389c6
    • N
      target: Move dev_pr_cit to struct se_subsystem_api · 91e2e39b
      Nicholas Bellinger 提交于
      This patch adds support for dev_pr_cit as an external config_item_type
      using TB_CIT_SETUP() helper macro, and sets both ct_item_ops + ct_attr
      following existing code.
      
      It updates target_core_make_subdev() + target_core_setup_dev_attrib_cit() +
      struct target_backend_cits, and drops left-over target_core_dev_pr_cit
      from target_core_configfs.c code and update comments.
      
      This patch introduces no functional change from existing code.
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      91e2e39b
    • N
      target: Move dev_attrib_cit to struct se_subsystem_api · f79a897e
      Nicholas Bellinger 提交于
      This patch adds support for dev_attrib_cit as an external config_item_type
      using TB_CIT_SETUP() helper macro, and sets both ct_item_ops + ct_attr
      following existing code.
      
      It updates target_core_make_subdev() + target_core_setup_dev_attrib_cit() +
      struct target_backend_cits, and drops left-over target_core_dev_attrib_cit
      from target_core_configfs.c code and update comments.
      
      This patch introduces no functional change from existing code.
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      f79a897e
    • N
      target: Move dev_cit to struct se_subsystem_api · 73112edc
      Nicholas Bellinger 提交于
      This patch adds initial support for dev_cit as external config_item_type.
      
      This includes a new struct target_backend_cits to hold the external CITs
      within struct se_subsystem_api, and target_core_setup_sub_cits() to be
      used by backend drivers ahead of transport_subsystem_register().
      
      It adds a TB_CIT_SETUP() helper following target_core_fabric_configfs.c
      to perform the config_item_type assignments.
      
      Also, drop left-over target_core_dev_cit from target_core_configfs.c code
      and update comments.
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      73112edc
  9. 04 10月, 2014 1 次提交
    • N
      target: Add force_pr_aptpl device attribute · 92404e60
      Nicholas Bellinger 提交于
      This patch adds a force_pr_aptpl device attribute used to force SPC-3 PR
      Activate Persistence across Target Power Loss (APTPL) operation.  This
      makes PR metadata write-out occur during state change regardless if new
      PERSISTENT_RESERVE_OUT CDBs have their APTPL feature bit set.
      
      This is useful during H/A failover in active/passive setups where all PR
      state is being re-created on a different node, driven by configfs backend
      device + export layout and pre-loaded $DEV/pr/res_aptpl_metadata.
      
      Cc: Mike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      92404e60
  10. 02 10月, 2014 1 次提交
    • J
      target: encapsulate smp_mb__after_atomic() · 33940d09
      Joern Engel 提交于
      The target code has a rather generous helping of smp_mb__after_atomic()
      throughout the code base.  Most atomic operations were followed by one
      and none were preceded by smp_mb__before_atomic(), nor accompanied by a
      comment explaining the need for a barrier.
      
      Instead of trying to prove for every case whether or not it is needed,
      this patch introduces atomic_inc_mb() and atomic_dec_mb(), which
      explicitly include the memory barriers before and after the atomic
      operation.  For now they are defined in a target header, although they
      could be of general use.
      
      Most of the existing atomic/mb combinations were replaced by the new
      helpers.  In a few cases the atomic was sandwiched in
      spin_lock/spin_unlock and I simply removed the barrier.
      
      I suspect that in most cases the correct conversion would have been to
      drop the barrier.  I also suspect that a few cases exist where a) the
      barrier was necessary and b) a second barrier before the atomic would
      have been necessary and got added by this patch.
      Signed-off-by: NJoern Engel <joern@logfs.org>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      33940d09
  11. 12 6月, 2014 2 次提交
  12. 07 4月, 2014 7 次提交
    • N
      target/sbc: Add sbc_dif_read_strip software emulation · 395ccb25
      Nicholas Bellinger 提交于
      Split up __sbc_dif_verify_read() so that VERIFY READ emulation can
      perform target-core specific READ_STRIP, seperate from the existing
      FILEIO/RAMDISK backend emulation code.
      
      Also add sbc_dif_read_strip() in order to determine number of sectors
      using cmd->prot_length, and skip the extra sbc_dif_copy_prot().
      Reviewed-by: NSagi Grimberg <sagig@mellanox.com>
      Cc: Martin K. Petersen <martin.petersen@oracle.com>
      Cc: Or Gerlitz <ogerlitz@mellanox.com>
      Cc: Quinn Tran <quinn.tran@qlogic.com>
      Cc: Giridhar Malavali <giridhar.malavali@qlogic.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      395ccb25
    • N
      target/sbc: Add sbc_dif_generate software emulation · 66a3d5bc
      Nicholas Bellinger 提交于
      This patch adds WRITE_INSERT emulation within target-core
      using TYPE1 / TYPE3 PI modes in sbc_dif_generate() code.
      
      This is useful in order for existing legacy fabrics that do not
      support protection offloads to interact with backend devices that
      currently have T10 PI enabled.
      
      v2 changes:
         - Rename to sbc_dif_generate() (Sagi)
      
      Cc: Martin K. Petersen <martin.petersen@oracle.com>
      Cc: Sagi Grimberg <sagig@mellanox.com>
      Cc: Or Gerlitz <ogerlitz@mellanox.com>
      Cc: Quinn Tran <quinn.tran@qlogic.com>
      Cc: Giridhar Malavali <giridhar.malavali@qlogic.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      66a3d5bc
    • N
      target: Pass in transport supported PI at session initialization · e70beee7
      Nicholas Bellinger 提交于
      In order to support local WRITE_INSERT + READ_STRIP operations for
      non PI enabled fabrics, the fabric driver needs to be able signal
      what protection offload operations are supported.
      
      This is done at session initialization time so the modes can be
      signaled by individual se_wwn + se_portal_group endpoints, as well
      as optionally across different transports on the same endpoint.
      
      For iser-target, set TARGET_PROT_ALL if the underlying ib_device
      has already signaled PI offload support, and allow this to be
      exposed via a new iscsit_transport->iscsit_get_sup_prot_ops()
      callback.
      
      For loopback, set TARGET_PROT_ALL to signal SCSI initiator mode
      operation.
      
      For all other drivers, set TARGET_PROT_NORMAL to disable fabric
      level PI.
      
      Cc: Martin K. Petersen <martin.petersen@oracle.com>
      Cc: Sagi Grimberg <sagig@mellanox.com>
      Cc: Or Gerlitz <ogerlitz@mellanox.com>
      Cc: Quinn Tran <quinn.tran@qlogic.com>
      Cc: Giridhar Malavali <giridhar.malavali@qlogic.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      e70beee7
    • N
      target: Add TFO->abort_task for aborted task resources release · 131e6abc
      Nicholas Bellinger 提交于
      Now that TASK_ABORTED status is not generated for all cases by
      TMR ABORT_TASK + LUN_RESET, a new TFO->abort_task() caller is
      necessary in order to give fabric drivers a chance to unmap
      hardware / software resources before the se_cmd descriptor is
      released via the normal TFO->release_cmd() codepath.
      
      This patch adds TFO->aborted_task() in core_tmr_abort_task()
      in place of the original transport_send_task_abort(), and
      also updates all fabric drivers to implement this caller.
      
      The fabric drivers that include changes to perform cleanup
      via ->aborted_task() are:
      
        - iscsi-target
        - iser-target
        - srpt
        - tcm_qla2xxx
      
      The fabric drivers that currently set ->aborted_task() to
      NOPs are:
      
        - loopback
        - tcm_fc
        - usb-gadget
        - sbp-target
        - vhost-scsi
      
      For the latter five, there appears to be no additional cleanup
      required before invoking TFO->release_cmd() to release the
      se_cmd descriptor.
      
      v2 changes:
        - Move ->aborted_task() call into transport_cmd_finish_abort (Alex)
      
      Cc: Alex Leung <amleung21@yahoo.com>
      Cc: Mark Rustad <mark.d.rustad@intel.com>
      Cc: Roland Dreier <roland@kernel.org>
      Cc: Vu Pham <vu@mellanox.com>
      Cc: Chris Boot <bootc@bootc.net>
      Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Cc: Giridhar Malavali <giridhar.malavali@qlogic.com>
      Cc: Saurav Kashyap <saurav.kashyap@qlogic.com>
      Cc: Quinn Tran <quinn.tran@qlogic.com>
      Cc: Sagi Grimberg <sagig@mellanox.com>
      Cc: Or Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      131e6abc
    • A
      target: Fix Task Aborted Status (TAS) handling · 68259b5a
      Alex Leung 提交于
      This patch addresses three of long standing issues wrt to Task
      Aborted Status (TAS) handling.
      
      The first is the incorrect assumption in core_tmr_handle_tas_abort()
      that TASK_ABORTED status is sent for the task referenced by TMR
      ABORT_TASK, and sending TASK_ABORTED status for TMR LUN_RESET on
      the same nexus the LUN_RESET was received.
      
      The second is to ensure the lun reference count is dropped within
      transport_cmd_finish_abort() by calling transport_lun_remove_cmd()
      before invoking transport_cmd_check_stop_to_fabric().
      
      The last is to fix the delayed TAS handling to allow outstanding
      WRITEs to complete before sending the TASK_ABORTED status. This
      includes changing transport_check_aborted_status() to avoid
      processing when SCF_SEND_DELAYED_TAS has not be set, and updating
      transport_send_task_abort() to drop the SCF_SENT_DELAYED_TAS
      check.
      Signed-off-by: NAlex Leung <amleung21@yahoo.com>
      Cc: Alex Leung <amleung21@yahoo.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      68259b5a
    • S
      Target/core: Remove prot_handover use for now · 48f5e7b3
      Sagi Grimberg 提交于
      This is not going to be supported soon - so drop it.
      Signed-off-by: NSagi Grimberg <sagig@mellanox.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      48f5e7b3
    • S
      Target/dif: Introduce protection-passthough-only mode · b5b8e298
      Sagi Grimberg 提交于
      Some transports (iSCSI/iSER/SRP/FC) support hardware INSERT/STRIP
      capabilities while other transports like loopback/vhost-scsi need
      perform this is software.
      
      This patch allows fabrics using SCF_PASSTHROUGH_SG_TO_MEM_NOALLOC
      to signal the early LUN scan handling case where PROTECT CDB bits
      are set, but no fabric buffer has been provided.
      
      For transports which use generic new command these buffers have yet
      to be allocated.
      
      Also this way, target may support protection information
      against legacy initiators (writes are inserted and reads
      are stripped).
      
      (Only set prot_pto for loopback during early special case - nab)
      Signed-off-by: NSagi Grimberg <sagig@mellanox.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      b5b8e298
  13. 14 3月, 2014 1 次提交
  14. 05 3月, 2014 1 次提交
    • N
      iscsi/iser-target: Fix isert_conn->state hung shutdown issues · defd8848
      Nicholas Bellinger 提交于
      This patch addresses a couple of different hug shutdown issues
      related to wait_event() + isert_conn->state.  First, it changes
      isert_conn->conn_wait + isert_conn->conn_wait_comp_err from
      waitqueues to completions, and sets ISER_CONN_TERMINATING from
      within isert_disconnect_work().
      
      Second, it splits isert_free_conn() into isert_wait_conn() that
      is called earlier in iscsit_close_connection() to ensure that
      all outstanding commands have completed before continuing.
      
      Finally, it breaks isert_cq_comp_err() into seperate TX / RX
      related code, and adds logic in isert_cq_rx_comp_err() to wait
      for outstanding commands to complete before setting ISER_CONN_DOWN
      and calling complete(&isert_conn->conn_wait_comp_err).
      Acked-by: NSagi Grimberg <sagig@mellanox.com>
      Cc: Or Gerlitz <ogerlitz@mellanox.com>
      Cc: <stable@vger.kernel.org> #3.10+
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      defd8848
  15. 13 2月, 2014 1 次提交
  16. 30 1月, 2014 1 次提交
    • N
      target: Fix percpu_ref_put race in transport_lun_remove_cmd · 5259a06e
      Nicholas Bellinger 提交于
      This patch fixes a percpu_ref_put race for se_lun->lun_ref in
      transport_lun_remove_cmd() where ->lun_ref could end up being
      put more than once per command via different target completion
      and fabric release contexts.
      
      It adds a cmpxchg() for se_cmd->lun_ref_active to ensure that
      percpu_ref_put() is only ever called once per se_cmd.
      
      This bug was manifesting itself as a LUN shutdown regression
      bug in >= v3.13 code, where percpu_ref_kill() would end up
      hanging indefinately due to the incorrect percpu_ref count.
      
      (Change se_cmd->lun_ref_active from bool -> int to force at
       least a 4-byte cmpxchg with MIPS ll/sc ins. - Fengguang)
      Reported-by: NTommy Apel <tommyapeldk@gmail.com>
      Cc: Tommy Apel <tommyapeldk@gmail.com>
      Cc: <stable@vger.kernel.org> #3.13+
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      5259a06e
  17. 25 1月, 2014 2 次提交
  18. 18 1月, 2014 4 次提交
    • N
      target: Add protection SGLs to target_submit_cmd_map_sgls · def2b339
      Nicholas Bellinger 提交于
      This patch adds support to target_submit_cmd_map_sgls() for
      accepting 'sgl_prot' + 'sgl_prot_count' parameters for
      DIF protection information.
      
      Note the passed parameters are stored at se_cmd->t_prot_sg
      and se_cmd->t_prot_nents respectively.
      
      Also, update tcm_loop and vhost-scsi fabrics usage of
      target_submit_cmd_map_sgls() to take into account the
      new parameters.
      
      Cc: Martin K. Petersen <martin.petersen@oracle.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: Sagi Grimberg <sagig@mellanox.com>
      Cc: Or Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      def2b339
    • N
      target/sbc: Add DIF TYPE1+TYPE3 read/write verify emulation · 41861fa8
      Nicholas Bellinger 提交于
      This patch adds support for DIF read/write verify emulation
      for TARGET_DIF_TYPE1_PROT + TARGET_DIF_TYPE3_PROT operation.
      
      This includes sbc_dif_verify_write() + sbc_dif_verify_read()
      calls accessable by backend drivers to perform DIF verify
      for SGL based data and protection information.
      
      Also included is sbc_dif_copy_prot() logic to copy protection
      information to/from backend provided protection SGLs.
      
      Based on scsi_debug.c DIF TYPE1+TYPE3 emulation.
      
      v2 changes:
        - Select CRC_T10DIF for TARGET_CORE in Kconfig (Fengguang)
        - Drop IP checksum logic from sbc_dif_v1_verify (MKP)
        - Fix offset on app_tag = 0xffff in sbc_dif_verify_read()
      
      Cc: Martin K. Petersen <martin.petersen@oracle.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: Sagi Grimberg <sagig@mellanox.com>
      Cc: Or Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      41861fa8
    • N
      target: Add DIF CHECK_CONDITION ASC/ASCQ exception cases · fcc4f17b
      Nicholas Bellinger 提交于
      This patch adds support for DIF related CHECK_CONDITION ASC/ASCQ
      exception cases into transport_send_check_condition_and_sense().
      
      This includes:
      
        LOGICAL BLOCK GUARD CHECK FAILED
        LOGICAL BLOCK APPLICATION TAG CHECK FAILED
        LOGICAL BLOCK REFERENCE TAG CHECK FAILED
      
      that used by DIF TYPE1 and TYPE3 failure cases.
      
      Cc: Martin K. Petersen <martin.petersen@oracle.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: Sagi Grimberg <sagig@mellanox.com>
      Cc: Or Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      fcc4f17b
    • N
      target: Add DIF related base definitions · ce65e5b9
      Nicholas Bellinger 提交于
      This patch adds DIF related definitions to target_core_base.h
      that includes enums for target_prot_op + target_prot_type +
      target_prot_version + target_guard_type + target_pi_error.
      
      Also included is struct se_dif_v1_tuple, along with changes
      to struct se_cmd, struct se_dev_attrib, and struct se_device.
      
      Also, add new se_subsystem_api->[init,format,free]_prot() callers
      used by target core code to setup backend specific protection
      information after the device has been configured.
      
      Enums taken from Sagi Grimberg's original patch.
      
      v2 changes:
        - Drop guard_type related definitions
        - Update target_prot_op + target_prot_ho definitions (Sagi)
        - Drop SCF_PROT + pi_prot_version flag
        - Add se_subsystem_api->format_prot() (Sagi)
        - Add hw_pi_prot_type device attribute
      
      Cc: Martin K. Petersen <martin.petersen@oracle.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: Sagi Grimberg <sagig@mellanox.com>
      Cc: Or Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      ce65e5b9
  19. 10 1月, 2014 1 次提交