On 04/07/15 16:18, Christoph Hellwig wrote:
All fabric drivers just do a kzalloc/kfree in their .tpg_alloc_fabric_acl/
.tpg_release_fabric_acl methods, so by adding a field that specifies the
node ACL size we can remove them all. We make the field optional as
most drivers don't even need private data. This also allows to take
all the ACL allocation and teardown into common code and thus simplify
the .fabric_make_nodeacl and .fabric_drop_nodeacl by taking a lot of
duplicate code into the code. Additionally the now optional
.get_default_depth method is used in both pathes that lead to node ACL
creation, further unifying the code in that area.
Note that this conflicts with various other patches currently in flight,
so for now it's just an RFC.
Hello Christoph,
To me this looks like a significant step forward. However, I think this
approach can be taken even further. How about making the following
additional changes:
- Eliminate port_acl_list from the ib_srpt driver. This is possible by
changing the single srpt_lookup_acl() call into a call of
core_tpg_check_initiator_node_acl(). I can implement this if you prefer.
- Modify the second argument of the get_pr_transport_id() callback from
struct se_node_acl * into the initiator port name. That port name is
namely the only information used by the get_pr_transport_id() callback
functions.
This should allow to eliminate all data structures derived from struct
se_node_acl except those in the tcm_fc and iscsi target drivers.
Bart.
--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html