1. 20 Jan, 2016 1 commit
    • Nicholas Bellinger's avatar
      iscsi-target: Fix potential dead-lock during node acl delete · 26a99c19
      Nicholas Bellinger authored
      This patch is a iscsi-target specific bug-fix for a dead-lock
      that can occur during explicit struct se_node_acl->acl_group
      se_session deletion via configfs rmdir(2), when iscsi-target
      time2retain timer is still active.
      
      It changes iscsi-target to obtain se_portal_group->session_lock
      internally using spin_in_locked() to check for the specific
      se_node_acl configfs shutdown rmdir(2) case.
      
      Note this patch is intended for stable, and the subsequent
      v4.5-rc patch converts target_core_tpg.c to use proper
      se_sess->sess_kref reference counting for both se_node_acl
      deletion + se_node_acl->queue_depth se_session restart.
      Reported-by: default avatar: Sagi Grimberg <sagig@mellanox.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: Andy Grover <agrover@redhat.com>
      Cc: Mike Christie <michaelc@cs.wisc.edu>
      Cc: stable@vger.kernel.org # 3.10+
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      26a99c19
  2. 13 Jan, 2016 2 commits
    • Nicholas Bellinger's avatar
      ib_srpt: Convert acl lookup to modern get_initiator_node_acl usage · f246c941
      Nicholas Bellinger authored
      This patch does a simple conversion of ib_srpt code to use
      proper modern core_tpg_get_initiator_node_acl() lookup using
      se_node_acl->acl_kref, and drops the legacy internal list
      usage from srpt_lookup_acl().
      
      This involves doing transport_init_session() earlier, and
      making sure transport_free_session() is called during
      a se_node_acl lookup failure to drop the last ->acl_kref.
      
      Also, it adds a minor backwards-compat hack to avoid the
      potential for user-space wrt node-acl WWPN formatting by
      simply stripping off '0x' prefix from ch->sess_name, and
      retrying once if core_tpg_get_initiator_node_acl() fails.
      
      Finally, go ahead and drop port_acl_list port_acl_lock
      since they are no longer used.
      
      Cc: Vu Pham <vu@mellanox.com>
      Cc: Sagi Grimberg <sagig@mellanox.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: Andy Grover <agrover@redhat.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      f246c941
    • Nicholas Bellinger's avatar
      tcm_fc: Convert acl lookup to modern get_initiator_node_acl usage · 7fbef3d0
      Nicholas Bellinger authored
      This patch does a simple conversion of tcm_fc code to use
      proper modern core_tpg_get_initiator_node_acl() lookup using
      se_node_acl->acl_kref, and drops the legacy list walk from
      ft_acl_get().
      
      Note the original lookup also took node_name into account,
      but since ft_init_nodeacl() only ever sets port_name for
      se_node_acl->acl_group within configfs, this is purely
      a mechanical change.
      
      As per HCH, go ahead and fold ft_acl_get() into original
      caller.
      
      Cc: Vasu Dev <vasu.dev@linux.intel.com>
      Cc: Sagi Grimberg <sagig@mellanox.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: Andy Grover <agrover@redhat.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      7fbef3d0
  3. 07 Jan, 2016 24 commits
  4. 06 Jan, 2016 6 commits
  5. 21 Dec, 2015 7 commits