18 Sep, 2012

2 commits

  • Every fabric driver has to supply a se_tfo->set_fabric_sense_len()
    method, just so iSCSI can return an offset of 2. However, every fabric
    driver is already allocating a sense buffer and passing it into the
    target core, either via transport_init_se_cmd() or target_submit_cmd().

    So instead of having iSCSI pass the start of its sense buffer into the
    core and then later tell the core to skip the first 2 bytes, it seems
    easier for iSCSI just to do the offset of 2 when it passes the sense
    buffer into the core. Then we can drop the se_tfo->set_fabric_sense_len()
    everywhere, and just add a couple of lines of code to iSCSI to set the
    sense data length to the beginning of the buffer right before it sends
    it over the network.

    (nab: Remove .set_fabric_sense_len usage from tcm_qla2xxx_npiv_ops +
    change transport_get_sense_buffer to follow v3.6-rc6 code w/o
    ->set_fabric_sense_len usage)

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

    Roland Dreier
     
  • There are no callers of se_tfo->get_fabric_sense_len(), so we should
    stop having every fabric driver implement it.

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

    Roland Dreier
     

10 Feb, 2012

1 commit


14 Dec, 2011

3 commits

  • This includes:
    - remove on _ in "__NAMELEN" in $fabric _make_tport
    - target_fabric_configfs_init() returns an error pointer and not NULL
    anymore. Consider that.
    - replace (!(var_name)) with (!var_name). The extra () are not required
    - remove #ifdef MODULE. If the code is builtin it needs an init function
    or the code is useless
    - put exit/clean functions into __exit

    Signed-off-by: Sebastian Andrzej Siewior
    Signed-off-by: Nicholas Bellinger

    Sebastian Andrzej Siewior
     
  • This patch fixes TFO->release_cmd() and removes legacy pack_lun() usage
    and new_cmd_failure when generating new TCM fabric skeleton from the
    tcm_mod_builder.py script.

    Reported-by: Stefan Bergstrand
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     
  • This reorganized the headers under include/target into:

    - target_core_base.h stays as is with all target-wide data stuctures and defines
    - target_core_backend.h contains the whole interface to I/O backends
    - target_core_fabric.h contains the whole interface to fabric modules

    Except for those only the various configfs macro headers stay around.

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

    Christoph Hellwig
     

24 Mar, 2011

2 commits

  • This patch adds the missing core_tpg_del_initiator_node_acl() call required
    by fabric modules for struct se_node_acl->acl_group context shutdown via

    target_core_fabric_configfs.c:target_fabric_nacl_base_release() ->

    struct target_core_fabric_ops->fabric_drop_nodeacl()

    for tcm_mod_builder.py generated $FABRIC_MOD_configfs.c skeleton code.

    Signed-off-by: Fubo Chen
    Signed-off-by: Nicholas A. Bellinger
    Signed-off-by: James Bottomley

    Fubo Chen
     
  • This patch converts the tcm_mod_builder.py generation script to
    create a new drivers/target/$TCM_FABRIC_MOD/Makefile and update
    drivers/target/Makefile, instead of creating+updating a 'Kbuild'
    filename.

    It also removes the remaining EXTRA_CFLAGS includes from
    tcm_mod_build_kbuild(), and converts fabric module generated .c
    code to us ""-style includes for $FABRIC_MOD_[base,fabric].h

    Reported-by: Christoph Hellwig
    Signed-off-by: Nicholas A. Bellinger
    Signed-off-by: James Bottomley

    Nicholas Bellinger
     

15 Jan, 2011

1 commit

  • LIO target is a full featured in-kernel target framework with the
    following feature set:

    High-performance, non-blocking, multithreaded architecture with SIMD
    support.

    Advanced SCSI feature set:

    * Persistent Reservations (PRs)
    * Asymmetric Logical Unit Assignment (ALUA)
    * Protocol and intra-nexus multiplexing, load-balancing and failover (MC/S)
    * Full Error Recovery (ERL=0,1,2)
    * Active/active task migration and session continuation (ERL=2)
    * Thin LUN provisioning (UNMAP and WRITE_SAMExx)

    Multiprotocol target plugins

    Storage media independence:

    * Virtualization of all storage media; transparent mapping of IO to LUNs
    * No hard limits on number of LUNs per Target; maximum LUN size ~750 TB
    * Backstores: SATA, SAS, SCSI, BluRay, DVD, FLASH, USB, ramdisk, etc.

    Standards compliance:

    * Full compliance with IETF (RFC 3720)
    * Full implementation of SPC-4 PRs and ALUA

    Significant code cleanups done by Christoph Hellwig.

    [jejb: fix up for new block bdev exclusive interface. Minor fixes from
    Randy Dunlap and Dan Carpenter.]
    Signed-off-by: Nicholas A. Bellinger
    Signed-off-by: James Bottomley

    Nicholas Bellinger