1. 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
  2. 01 11月, 2011 1 次提交
  3. 22 7月, 2011 2 次提交
    • A
      target: Follow up core updates from AGrover and HCH (round 4) · 6708bb27
      Andy Grover 提交于
      This patch contains the squashed version of forth round series cleanups
      from Andy and Christoph following the post heavy lifting in the preceeding:
      'Eliminate usage of struct se_mem' and 'Make all control CDBs scatter-gather'
      changes.  This also includes a conversion of target core and the v3.0
      mainline fabric modules (loopback and tcm_fc) to use pr_debug and the
      CONFIG_DYNAMIC_DEBUG infrastructure!
      
      These have been squashed into this third and final round for v3.1.
      
      target: Remove ifdeffed code in t_g_process_write
      target: Remove direct ramdisk code
      target: Rename task_sg_num to task_sg_nents
      target: Remove custom debug macros for pr_debug. Use pr_err().
      target: Remove custom debug macros in mainline fabrics
      target: Set WSNZ=1 in block limits VPD. Abort if WRITE_SAME sectors = 0
      target: Remove transport do_se_mem_map callback
      target: Further simplify transport_free_pages
      target: Redo task allocation return value handling
      target: Remove extra parentheses
      target: change alloc_task call to take *cdb, not *cmd
      
      (nab: Fix bogus struct file assignments in fd_do_readv and fd_do_writev)
      Signed-off-by: NAndy Grover <agrover@redhat.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      6708bb27
    • A
      target: Core cleanups from AGrover (round 1) · e3d6f909
      Andy Grover 提交于
      This patch contains the squashed version of a number of cleanups and
      minor fixes from Andy's initial series (round 1) for target core this
      past spring.  The condensed log looks like:
      
      target: use errno values instead of returning -1 for everything
      target: Rename transport_calc_sg_num to transport_init_task_sg
      target: Fix leak in error path in transport_init_task_sg
      target/pscsi: Remove pscsi_get_sh() usage
      target: Make two runtime checks into WARN_ONs
      target: Remove hba queue depth and convert to spin_lock_irq usage
      target: dev->dev_status_queue_obj is unused
      target: Make struct se_queue_req.cmd type struct se_cmd *
      target: Remove __transport_get_qr_from_queue()
      target: Rename se_dev->g_se_dev_list to se_dev_node
      target: Remove struct se_global
      target: Simplify scsi mib index table code
      target: Make dev_queue_obj a member of se_device instead of a pointer
      target: remove extraneous returns at end of void functions
      target: Ensure transport_dump_vpd_ident_type returns null-terminated str
      target: Function pointers don't need to use '&' to be assigned
      target: Fix comment in __transport_execute_tasks()
      target: Misc style cleanups
      target: rename struct pr_reservation_template to pr_reservation
      target: Remove #defines that just perform indirection
      target: Inline transport_get_task_from_execute_queue()
      target: Minor header comment fixes
      Signed-off-by: NAndy Grover <agrover@redhat.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      e3d6f909
  4. 24 3月, 2011 1 次提交
    • F
      [SCSI] target: Remove unnecessary hba_dev_list walk and se_clear_dev_ports legacy code · 05aea6e7
      Fubo Chen 提交于
      This patch removes a legacy struct se_hba->hba_dev_list -> se_release_device_for_hba()
      list walk in core_delete_hba(), which is no longer required while using configfs
      VFS level parent/child struct config_group dependency referencing.  The reason
      is because any struct se_hba->hba_dev_list-> struct se_device members are going
      to have to be released via:
      
      	rmdir /sys/kernel/config/target/core/$HBA/*
      
      before rmdir release of struct se_hba via target_core_configfs.c:
      target_core_call_delhbafromtarget() -> core_delete_hba()
      
      	rmdir /sys/kernel/config/target/core/$HBA
      
      to release struct se_hba in core_delete_hba().
      
      This patch also removes the legacy se_clear_dev_ports() function, which is
      left-over pre-configfs shutdown logic for when se_free_virtual_device()
      was responsible for walking struct se_device->dev_sep_list and calling
      core_dev_del_lun() for each individual active struct se_port->se_lun.
      
      The reason this can be removed is because all struct se_device->dev_sep_list
      -> struct se_port communication is done via configfs symlinks, which
      means that an target fabric module's endpoints containg active struct
      se_port(s) will have to be released via target_core_fabric_configfs.c:
      target_fabric_port_unlink() via:
      
      	unlink /sys/kernel/config/target/$FABRIC_MOD/$ENDPOINT/tpgt_$TPGT/lun/lun_$LUN_ID/<symlink>
      
      before rmdir release of struct se_device in target_core_configfs.c:
      target_core_drop_subdev() -> se_free_virtual_device() can happen via:
      
      	rmdir /sys/kernel/config/target/core/$HBA/*
      
      to release struct se_subsystem_dev in target_core_drop_subdev()
      Reported-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Reported-by: NFubo Chen <fubo.chen@gmail.com>
      Signed-off-by: NNicholas A. Bellinger <nab@linux-iscsi.org>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      05aea6e7
  5. 02 3月, 2011 1 次提交
  6. 17 2月, 2011 1 次提交
  7. 15 1月, 2011 1 次提交
    • N
      [SCSI] target: Add LIO target core v4.0.0-rc6 · c66ac9db
      Nicholas Bellinger 提交于
      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: NNicholas A. Bellinger <nab@linux-iscsi.org>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      c66ac9db