11 Mar, 2016

1 commit

  • se_dev_entry.lun_flags and se_lun.lun_access are only used for keeping
    track of read-write vs. read-only state. Since this is an either/or thing
    we can represent it as bool, and remove the unneeded enum
    transport_lunflags_table, which is left over from when there were more
    flags.

    Change code that uses this enum to just use true/false, and make it clear
    through variable and param names that true means read-only, false means
    read-write.

    Signed-off-by: Andy Grover
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Nicholas Bellinger

    Andy Grover
     

07 Jan, 2016

1 commit


12 Sep, 2015

1 commit

  • Pull SCSI target updates from Nicholas Bellinger:
    "Here are the outstanding target-pending updates for v4.3-rc1.

    Mostly bug-fixes and minor changes this round. The fallout from the
    big v4.2-rc1 RCU conversion have (thus far) been minimal.

    The highlights this round include:

    - Move sense handling routines into scsi_common code (Sagi)

    - Return ABORTED_COMMAND sense key for PI errors (Sagi)

    - Add tpg_enabled_sendtargets attribute for disabled iscsi-target
    discovery (David)

    - Shrink target struct se_cmd by rearranging fields (Roland)

    - Drop iSCSI use of mutex around max_cmd_sn increment (Roland)

    - Replace iSCSI __kernel_sockaddr_storage with sockaddr_storage (Andy +
    Chris)

    - Honor fabric max_data_sg_nents I/O transfer limit (Arun + Himanshu +
    nab)

    - Fix EXTENDED_COPY >= v4.1 regression OOPsen (Alex + nab)"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (37 commits)
    target: use stringify.h instead of own definition
    target/user: Fix UFLAG_UNKNOWN_OP handling
    target: Remove no-op conditional
    target/user: Remove unused variable
    target: Fix max_cmd_sn increment w/o cmdsn mutex regressions
    target: Attach EXTENDED_COPY local I/O descriptors to xcopy_pt_sess
    target/qla2xxx: Honor max_data_sg_nents I/O transfer limit
    target/iscsi: Replace __kernel_sockaddr_storage with sockaddr_storage
    target/iscsi: Replace conn->login_ip with login_sockaddr
    target/iscsi: Keep local_ip as the actual sockaddr
    target/iscsi: Fix np_ip bracket issue by removing np_ip
    target: Drop iSCSI use of mutex around max_cmd_sn increment
    qla2xxx: Update tcm_qla2xxx module description to 24xx+
    iscsi-target: Add tpg_enabled_sendtargets for disabled discovery
    drivers: target: Drop unlikely before IS_ERR(_OR_NULL)
    target: check DPO/FUA usage for COMPARE AND WRITE
    target: Shrink struct se_cmd by rearranging fields
    target: Remove cmd->se_ordered_id (unused except debug log lines)
    target: add support for START_STOP_UNIT SCSI opcode
    target: improve unsupported opcode message
    ...

    Linus Torvalds
     

11 Sep, 2015

1 commit

  • This patch adds an optional fabric driver provided SGL limit
    that target-core will honor as it's own internal I/O maximum
    transfer length limit, as exposed by EVPD=0xb0 block limits
    parameters.

    This is required for handling cases when host I/O transfer
    length exceeds the requested EVPD block limits maximum
    transfer length. The initial user of this logic is qla2xxx,
    so that we can avoid having to reject I/Os from some legacy
    FC hosts where EVPD=0xb0 parameters are not honored.

    When se_cmd payload length exceeds the provided limit in
    target_check_max_data_sg_nents() code, se_cmd->data_length +
    se_cmd->prot_length are reset with se_cmd->residual_count
    plus underflow bit for outgoing TFO response callbacks.
    It also checks for existing CDB level underflow + overflow
    and recalculates final residual_count as necessary.

    Note this patch currently assumes 1:1 mapping of PAGE_SIZE
    per struct scatterlist entry.

    Reported-by: Craig Watson
    Cc: Craig Watson
    Tested-by: Himanshu Madhani
    Cc: Roland Dreier
    Cc: Arun Easi
    Cc: Giridhar Malavali
    Cc: Andrew Vasquez
    Cc: Christoph Hellwig
    Cc: Hannes Reinecke
    Cc: Martin K. Petersen
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     

19 Aug, 2015

1 commit

  • REPORT LUNS should not fail just because the allocation length is less
    than 16. The relevant section of SPC-4 is:

    4.2.5.6 Allocation length

    The ALLOCATION LENGTH field specifies the maximum number of bytes or
    blocks that an application client has allocated in the Data-In
    Buffer. The ALLOCATION LENGTH field specifies bytes unless a
    different requirement is stated in the command definition.

    An allocation length of zero specifies that no data shall be
    transferred. This condition shall not be considered an error.

    So we should just truncate our response rather than return an error.

    Signed-off-by: Roland Dreier
    Signed-off-by: Spencer Baugh
    Signed-off-by: Nicholas Bellinger

    Roland Dreier
     

03 Aug, 2015

1 commit


31 Jul, 2015

1 commit

  • Make the warning about unsupported SCSI opcode more useful:

    - Add in the initiator name so we know who's sending it.
    - Print the warning even for opcodes that spc_parse_cdb() knows about
    but that we don't handle.

    Signed-off-by: Joern Engel
    Signed-off-by: Spencer Baugh
    Reviewed-by: Sagi Grimberg
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Nicholas Bellinger

    Joern Engel
     

24 Jul, 2015

2 commits

  • In case a LU spans 64bit sectors, fixed size sense data information
    field is only 32 bits which means the sector information will be truncated.

    Thus, if the LU spans 64bit sectors, use descriptor format sense data to
    correctly report sector information.

    Reported-by: Christoph Hellwig
    Reviewed-by: Christoph Hellwig
    Reviewed-by: Hannes Reinecke
    Reviewed-by: Martin K. Petersen
    Signed-off-by: Sagi Grimberg
    Signed-off-by: Nicholas Bellinger

    Sagi Grimberg
     
  • Instead of open coding the sense buffer construction, use
    scsi scsi_build_sense_buffer() and scsi_set_sense_information()
    helpers which moved to scsi_common.

    Signed-off-by: Sagi Grimberg
    Reviewed-by: Christoph Hellwig
    Reviewed-by: Hannes Reinecke
    Reviewed-by: Martin K. Petersen
    Signed-off-by: Nicholas Bellinger

    Sagi Grimberg
     

07 Jul, 2015

2 commits


05 Jul, 2015

1 commit

  • Pull SCSI target updates from Nicholas Bellinger:
    "It's been a busy development cycle for target-core in a number of
    different areas.

    The fabric API usage for se_node_acl allocation is now within
    target-core code, dropping the external API callers for all fabric
    drivers tree-wide.

    There is a new conversion to RCU hlists for se_node_acl and
    se_portal_group LUN mappings, that turns fast-past LUN lookup into a
    completely lockless code-path. It also removes the original
    hard-coded limitation of 256 LUNs per fabric endpoint.

    The configfs attributes for backends can now be shared between core
    and driver code, allowing existing drivers to use common code while
    still allowing flexibility for new backend provided attributes.

    The highlights include:

    - Merge sbc_verify_dif_* into common code (sagi)
    - Remove iscsi-target support for obsolete IFMarker/OFMarker
    (Christophe Vu-Brugier)
    - Add bidi support in target/user backend (ilias + vangelis + agover)
    - Move se_node_acl allocation into target-core code (hch)
    - Add crc_t10dif_update common helper (akinobu + mkp)
    - Handle target-core odd SGL mapping for data transfer memory
    (akinobu)
    - Move transport ID handling into target-core (hch)
    - Move task tag into struct se_cmd + support 64-bit tags (bart)
    - Convert se_node_acl->device_list[] to RCU hlist (nab + hch +
    paulmck)
    - Convert se_portal_group->tpg_lun_list[] to RCU hlist (nab + hch +
    paulmck)
    - Simplify target backend driver registration (hch)
    - Consolidate + simplify target backend attribute implementations
    (hch + nab)
    - Subsume se_port + t10_alua_tg_pt_gp_member into se_lun (hch)
    - Drop lun_sep_lock for se_lun->lun_se_dev RCU usage (hch + nab)
    - Drop unnecessary core_tpg_register TFO parameter (nab)
    - Use 64-bit LUNs tree-wide (hannes)
    - Drop left-over TARGET_MAX_LUNS_PER_TRANSPORT limit (hannes)"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (76 commits)
    target: Bump core version to v5.0
    target: remove target_core_configfs.h
    target: remove unused TARGET_CORE_CONFIG_ROOT define
    target: consolidate version defines
    target: implement WRITE_SAME with UNMAP bit using ->execute_unmap
    target: simplify UNMAP handling
    target: replace se_cmd->execute_rw with a protocol_data field
    target/user: Fix inconsistent kmap_atomic/kunmap_atomic
    target: Send UA when changing LUN inventory
    target: Send UA upon LUN RESET tmr completion
    target: Send UA on ALUA target port group change
    target: Convert se_lun->lun_deve_lock to normal spinlock
    target: use 'se_dev_entry' when allocating UAs
    target: Remove 'ua_nacl' pointer from se_ua structure
    target_core_alua: Correct UA handling when switching states
    xen-scsiback: Fix compile warning for 64-bit LUN
    target: Remove TARGET_MAX_LUNS_PER_TRANSPORT
    target: use 64-bit LUNs
    target: Drop duplicate + unused se_dev_check_wce
    target: Drop unnecessary core_tpg_register TFO parameter
    ...

    Linus Torvalds
     

02 Jun, 2015

1 commit

  • Only include SCSI initiator header files in target code that needs
    these header files, namely the SCSI pass-through code and the tcm_loop
    driver. Change SCSI_SENSE_BUFFERSIZE into TRANSPORT_SENSE_BUFFER in
    target code because the former is intended for initiator code and the
    latter for target code. With this patch the only initiator include
    directives in target code that remain are as follows:

    $ git grep -nHE 'include .scsi/(scsi.h|scsi_host.h|scsi_device.h|scsi_cmnd.h)' drivers/target drivers/infiniband/ulp/{isert,srpt} drivers/usb/gadget/legacy/tcm_*.[ch] drivers/{vhost,xen} include/{target,trace/events/target.h}
    drivers/target/loopback/tcm_loop.c:29:#include
    drivers/target/loopback/tcm_loop.c:31:#include
    drivers/target/loopback/tcm_loop.c:32:#include
    drivers/target/loopback/tcm_loop.c:33:#include
    drivers/target/target_core_pscsi.c:39:#include
    drivers/target/target_core_pscsi.c:40:#include
    drivers/xen/xen-scsiback.c:52:#include /* SG_ALL */

    Signed-off-by: Bart Van Assche
    Reviewed-by: Christoph Hellwig
    Signed-off-by: James Bottomley

    Bart Van Assche
     

01 Jun, 2015

3 commits

  • With se_port and t10_alua_tg_pt_gp_member being absored into se_lun,
    there is no need for an extra lock to protect se_lun->lun_se_dev
    assignment.

    This patch also converts backend drivers to use call_rcu() release
    to allow any se_device readers to complete. The call_rcu() instead
    of kfree_rcu() is required here because se_device is embedded into
    the backend driver specific structure.

    Also, convert se_lun->lun_stats to use atomic_long_t within the
    target_complete_ok_work() completion callback, and add FIXME for
    transport_lookup_tmr_lun() with se_lun->lun_ref.

    Finally, update sbp_update_unit_directory() special case usage with
    proper rcu_dereference_raw() and configfs symlink comment.

    Reported-by: Christoph Hellwig
    Reviewed-by: Hannes Reinecke
    Cc: Paul E. McKenney
    Cc: Chris Boot
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     
  • This patch eliminates all se_port + t10_alua_tg_pt_gp_member usage,
    and converts current users to direct se_lun pointer dereference.

    This includes the removal of core_export_port(), core_release_port()
    core_dev_export() and core_dev_unexport(). Along with conversion
    of special case se_lun pointer dereference within PR ALL_TG_PT=1
    and ALUA access state transition UNIT_ATTENTION handling.

    Also, update core_enable_device_list_for_node() to reference the
    new per se_lun->lun_deve_list when creating a new entry, or
    replacing an existing one via RCU.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Hannes Reinecke
    Signed-off-by: Nicholas Bellinger

    Christoph Hellwig
     
  • This patch converts se_node_acl->device_list[] table for mappedluns
    to modern RCU hlist_head usage in order to support an arbitrary number
    of node_acl lun mappings.

    It converts transport_lookup_*_lun() fast-path code to use RCU read path
    primitives when looking up se_dev_entry. It adds a new hlist_head at
    se_node_acl->lun_entry_hlist for this purpose.

    For transport_lookup_cmd_lun() code, it works with existing per-cpu
    se_lun->lun_ref when associating se_cmd with se_lun + se_device.
    Also, go ahead and update core_create_device_list_for_node() +
    core_free_device_list_for_node() to use ->lun_entry_hlist.

    It also converts se_dev_entry->pr_ref_count access to use modern
    struct kref counting, and updates core_disable_device_list_for_node()
    to kref_put() and block on se_deve->pr_comp waiting for outstanding PR
    special-case PR references to drop, then invoke kfree_rcu() to wait
    for the RCU grace period to complete before releasing memory.

    So now that se_node_acl->lun_entry_hlist fast path access uses RCU
    protected pointers, go ahead and convert remaining non-fast path
    RCU updater code using ->lun_entry_lock to struct mutex to allow
    callers to block while walking se_node_acl->lun_entry_hlist.

    Finally drop the left-over core_clear_initiator_node_from_tpg() that
    originally cleared lun_access during se_node_acl shutdown, as post
    RCU conversion it now becomes duplicated logic.

    Reviewed-by: Hannes Reinecke
    Cc: Christoph Hellwig
    Cc: Sagi Grimberg
    Cc: Paul E. McKenney
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     

31 May, 2015

2 commits

  • Now that we store the protocol identifier in the tpg structure we don't
    need this method.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Nicholas Bellinger

    Christoph Hellwig
     
  • Drivers may override the WCE flag, in which case the DPOFUA flag in
    MODE SENSE might differ from the check used to reject invalid FUA
    bits in sbc_check_dpofua. Also now that we reject invalid FUA
    bits early there is no need to duplicate the same buggy check
    down in the fileio code.

    As the DPOFUA flag controls th support for FUA bits on read and
    write commands as well as DPO key off all the checks off a single
    helper, and deprecate the emulate_dpo and emulate_fua_read attributs.

    This fixes various failures in the libiscsi testsuite.

    Personally I'd prefer to also remove the emulate_fua_write attribute
    as there is no good reason to disable it, but I'll leave that for
    a separate discussion.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Nicholas Bellinger

    Christoph Hellwig
     

25 Apr, 2015

1 commit

  • Pull SCSI target updates from Nicholas Bellinger:
    "Lots of activity in target land the last months.

    The highlights include:

    - Convert fabric drivers tree-wide to target_register_template() (hch
    + bart)

    - iser-target hardening fixes + v1.0 improvements (sagi)

    - Convert iscsi_thread_set usage to kthread.h + kill
    iscsi_target_tq.c (sagi + nab)

    - Add support for T10-PI WRITE_STRIP + READ_INSERT operation (mkp +
    sagi + nab)

    - DIF fixes for CONFIG_DEBUG_SG=y + UNMAP file emulation (akinobu +
    sagi + mkp)

    - Extended TCMU ABI v2 for future BIDI + DIF support (andy + ilias)

    - Fix COMPARE_AND_WRITE handling for NO_ALLLOC drivers (hch + nab)

    Thanks to everyone who contributed this round with new features,
    bug-reports, fixes, cleanups and improvements.

    Looking forward, it's currently shaping up to be a busy v4.2 as well"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (69 commits)
    target: Put TCMU under a new config option
    target: Version 2 of TCMU ABI
    target: fix tcm_mod_builder.py
    target/file: Fix UNMAP with DIF protection support
    target/file: Fix SG table for prot_buf initialization
    target/file: Fix BUG() when CONFIG_DEBUG_SG=y and DIF protection enabled
    target: Make core_tmr_abort_task() skip TMFs
    target/sbc: Update sbc_dif_generate pr_debug output
    target/sbc: Make internal DIF emulation honor ->prot_checks
    target/sbc: Return INVALID_CDB_FIELD if DIF + sess_prot_type disabled
    target: Ensure sess_prot_type is saved across session restart
    target/rd: Don't pass incomplete scatterlist entries to sbc_dif_verify_*
    target: Remove the unused flag SCF_ACK_KREF
    target: Fix two sparse warnings
    target: Fix COMPARE_AND_WRITE with SG_TO_MEM_NOALLOC handling
    target: simplify the target template registration API
    target: simplify target_xcopy_init_pt_lun
    target: remove the unused SCF_CMD_XCOPY_PASSTHROUGH flag
    target/rd: reduce code duplication in rd_execute_rw()
    tcm_loop: fixup tpgt string to integer conversion
    ...

    Linus Torvalds
     

08 Apr, 2015

1 commit

  • This patch updates standard INQUIRY, INQUIRY EVPD=0x86, READ_CAPACITY_16
    and control mode pages to use se_sess->sess_prot_type when determing which
    type of T10-PI related feature bits can be exposed.

    This is required for fabric sessions supporting T10-PI metadata to
    backend devices that don't have protection enabled.

    Reviewed-by: Martin Petersen
    Reviewed-by: Sagi Grimberg
    Cc: Christoph Hellwig
    Cc: Doug Gilbert
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     

27 Mar, 2015

1 commit


20 Mar, 2015

1 commit

  • A check that rejects a CDB with FUA bit set if no write cache is
    emulated was added by the following commit:

    fde9f50 target: Add sanity checks for DPO/FUA bit usage

    The condition is as follows:

    if (!dev->dev_attrib.emulate_fua_write ||
    !dev->dev_attrib.emulate_write_cache)

    However, this check is wrong if the backend device supports WCE but
    "emulate_write_cache" is disabled.

    This patch uses se_dev_check_wce() (previously named
    spc_check_dev_wce) to invoke transport->get_write_cache() if the
    device has a write cache or check the "emulate_write_cache" attribute
    otherwise.

    Reported-by: Christoph Hellwig
    Signed-off-by: Christophe Vu-Brugier
    Signed-off-by: Nicholas Bellinger

    Christophe Vu-Brugier
     

22 Feb, 2015

1 commit

  • Pull SCSI target updates from Nicholas Bellinger:
    "The highlights this round include:

    - Update vhost-scsi to support F_ANY_LAYOUT using mm/iov_iter.c
    logic, and signal VERSION_1 support (MST + Viro + nab)

    - Fix iscsi/iser-target to remove problematic active_ts_set usage
    (Gavin Guo)

    - Update iscsi/iser-target to support multi-sequence sendtargets
    (Sagi)

    - Fix original PR_APTPL_BUF_LEN 8k size limitation (Martin Svec)

    - Add missing WRITE_SAME end-of-device sanity check (Bart)

    - Check for LBA + sectors wrap-around in sbc_parse_cdb() (nab)

    - Other various minor SPC/SBC compliance fixes based upon Ronnie
    Sahlberg test suite (nab)"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (32 commits)
    target: Set LBPWS10 bit in Logical Block Provisioning EVPD
    target: Fail UNMAP when emulate_tpu=0
    target: Fail WRITE_SAME w/ UNMAP=1 when emulate_tpws=0
    target: Add sanity checks for DPO/FUA bit usage
    target: Perform PROTECT sanity checks for WRITE_SAME
    target: Fail I/O with PROTECT bit when protection is unsupported
    target: Check for LBA + sectors wrap-around in sbc_parse_cdb
    target: Add missing WRITE_SAME end-of-device sanity check
    iscsi-target: Avoid IN_LOGOUT failure case for iser-target
    target: Fix PR_APTPL_BUF_LEN buffer size limitation
    iscsi-target: Drop problematic active_ts_list usage
    iscsi/iser-target: Support multi-sequence sendtargets text response
    iser-target: Remove duplicate function names
    vhost/scsi: potential memory corruption
    vhost/scsi: Global tcm_vhost -> vhost_scsi rename
    vhost/scsi: Drop left-over scsi_tcq.h include
    vhost/scsi: Set VIRTIO_F_ANY_LAYOUT + VIRTIO_F_VERSION_1 feature bits
    vhost/scsi: Add ANY_LAYOUT support in vhost_scsi_handle_vq
    vhost/scsi: Add ANY_LAYOUT iov -> sgl mapping prerequisites
    vhost/scsi: Change vhost_scsi_map_to_sgl to accept iov ptr + len
    ...

    Linus Torvalds
     

14 Feb, 2015

1 commit


10 Jan, 2015

1 commit

  • This patch drops the arbitrary maximum I/O size limit in sbc_parse_cdb(),
    which currently for fabric_max_sectors is hardcoded to 8192 (4 MB for 512
    byte sector devices), and for hw_max_sectors is a backend driver dependent
    value.

    This limit is problematic because Linux initiators have only recently
    started to honor block limits MAXIMUM TRANSFER LENGTH, and other non-Linux
    based initiators (eg: MSFT Fibre Channel) can also generate I/Os larger
    than 4 MB in size.

    Currently when this happens, the following message will appear on the
    target resulting in I/Os being returned with non recoverable status:

    SCSI OP 28h with too big sectors 16384 exceeds fabric_max_sectors: 8192

    Instead, drop both [fabric,hw]_max_sector checks in sbc_parse_cdb(),
    and convert the existing hw_max_sectors into a purely informational
    attribute used to represent the granuality that backend driver and/or
    subsystem code is splitting I/Os upon.

    Also, update FILEIO with an explicit FD_MAX_BYTES check in fd_execute_rw()
    to deal with the one special iovec limitiation case.

    v2 changes:
    - Drop hw_max_sectors check in sbc_parse_cdb()

    Reported-by: Lance Gropper
    Reported-by: Stefan Priebe
    Cc: Christoph Hellwig
    Cc: Martin K. Petersen
    Cc: Roland Dreier
    Cc: stable@vger.kernel.org # 3.4
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     

04 Dec, 2014

1 commit

  • For SPI drivers use the message definitions from scsi.h, and for target
    drivers introduce a new TCM_*_TAG namespace.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Bart Van Assche
    Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com

    Christoph Hellwig
     

18 Sep, 2014

1 commit


12 Jun, 2014

1 commit

  • When an initiator sends an allocation length bigger than what its
    command consumes, the target should only return the actual response data
    and set the residual length to the unused part of the allocation length.

    Add a helper function that command handlers (INQUIRY, READ CAPACITY,
    etc) can use to do this correctly, and use this code to get the correct
    residual for commands that don't use the full initiator allocation in the
    handlers for READ CAPACITY, READ CAPACITY(16), INQUIRY, MODE SENSE and
    REPORT LUNS.

    This addresses a handful of failures as reported by Christophe with
    the Windows Certification Kit:

    http://permalink.gmane.org/gmane.linux.scsi.target.devel/6515

    Signed-off-by: Roland Dreier
    Tested-by: Christophe Vu-Brugier
    Cc: stable@vger.kernel.org # 3.10+
    Signed-off-by: Nicholas Bellinger

    Roland Dreier
     

07 Jun, 2014

1 commit


07 Apr, 2014

2 commits


13 Feb, 2014

1 commit

  • Commit fbfe858fea2a ("target_core_spc: Include target device
    descriptor in VPD page 83") added a new length variable, but (due to a
    cut and paste mistake?) just checks scsi_name_len against 256 twice.
    Fix this to check scsi_target_len for overflow too.

    Signed-off-by: Roland Dreier
    Signed-off-by: Nicholas Bellinger

    Roland Dreier
     

18 Jan, 2014

3 commits


10 Jan, 2014

2 commits

  • This patch converts the temporary buffer in spc_emulate_inquiry() to
    use dynamically allocated memory, instead of local stack memory.

    Also bump SE_INQUIRY_BUF up to 1024 bytes to be safe when handling
    multiple large SCSI name descriptors for EVPD=0x83.

    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     
  • Add infrastructure for referrals.

    v2 changes:

    - Fix unsigned long long division in core_alua_state_lba_dependent on
    32-bit (Fengguang + Chen + Hannes)
    - Fix compile warning in core_alua_state_lba_dependent (nab)
    - Convert segment_* + sectors variables in core_alua_state_lba_dependent
    to u64 (Hannes)

    Signed-off-by: Hannes Reinecke
    Signed-off-by: Nicholas Bellinger

    Hannes Reinecke
     

18 Dec, 2013

2 commits


21 Nov, 2013

1 commit