1. 11 2月, 2016 1 次提交
  2. 08 1月, 2016 2 次提交
  3. 07 1月, 2016 2 次提交
  4. 21 12月, 2015 1 次提交
  5. 14 10月, 2015 1 次提交
  6. 31 7月, 2015 1 次提交
    • N
      target: Perform RCU callback barrier before backend/fabric unload · 94509182
      Nicholas Bellinger 提交于
      This patch addresses a v4.2-rc1 regression where backend driver
      module unload happening immediately after TBO->free_device()
      does internal call_rcu(), will currently result in IRQ context
      rcu_process_callbacks() use-after-free paging OOPsen.
      
      It adds the missing rcu_barrier() in target_backend_unregister()
      to perform an explicit RCU barrier waiting for all RCU callbacks
      to complete before releasing target_backend_ops memory, and
      allowing TBO->module exit to proceed.
      
      Also, do the same for fabric drivers in target_unregister_template()
      to ensure se_deve_entry->rcu_head -> kfree_rcu() callbacks have
      completed, before allowing target_core_fabric_ops->owner module
      exit to proceed.
      Acked-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: Sagi Grimberg <sagig@mellanox.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      94509182
  7. 24 7月, 2015 3 次提交
  8. 23 6月, 2015 2 次提交
  9. 16 6月, 2015 1 次提交
  10. 01 6月, 2015 5 次提交
  11. 31 5月, 2015 11 次提交
  12. 15 4月, 2015 1 次提交
    • C
      target: simplify the target template registration API · 9ac8928e
      Christoph Hellwig 提交于
      Instead of calling target_fabric_configfs_init() +
      target_fabric_configfs_register() / target_fabric_configfs_deregister()
      target_fabric_configfs_free() from every target driver, rewrite the API
      so that we have simple register/unregister functions that operate on
      a const operations vector.
      
      This patch also fixes a memory leak in several target drivers. Several
      target drivers namely called target_fabric_configfs_deregister()
      without calling target_fabric_configfs_free().
      
      A large part of this patch is based on earlier changes from
      Bart Van Assche <bart.vanassche@sandisk.com>.
      
      (v2: Add a new TF_CIT_SETUP_DRV macro so that the core configfs code
      can declare attributes as either core only or for drivers)
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      9ac8928e
  13. 21 3月, 2015 1 次提交
  14. 02 12月, 2014 8 次提交
    • N
      target: Drop left-over internal dev attribute code · 43cf208c
      Nicholas Bellinger 提交于
      Now that backend drivers are populating their own device attributes,
      go ahead and remove left-over definitions + internal attribute list
      of device attributes from target_core_configfs.c code
      
      Also update TB_CIT_SETUP(dev_attrib,...) to signal ct_attr = NULL.
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      43cf208c
    • 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
    • R
      target: Fix target_core_register_fabric() for built-in fabric modules · e7b7af6e
      Roland Dreier 提交于
      If we try to create a fabric directory in configfs for one of the
      default hard-coded fabric modules (iscsi and loopback), and that
      fabric is actually built into the kernel, then the operation will
      spuriously fail because request_module() (for the code that's already
      linked into the kernel) fails.
      
      Fix this by running the autoprobing code only if an initial
      target_core_get_fabric() fails.
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      e7b7af6e