Re: [PATCH 1/4] target: Obtain se_node_acl->acl_kref during get_initiator_node_acl

From: Bart Van Assche
Date: Fri Jan 08 2016 - 03:31:44 EST


On 01/08/2016 09:14 AM, Christoph Hellwig wrote:
mutex_lock(&tpg->acl_node_mutex);
acl = __core_tpg_get_initiator_node_acl(tpg, initiatorname);
+ /*
+ * Obtain the acl_kref now, which will be dropped upon the
+ * release of se_sess memory within transport_free_session().
+ */
+ if (acl)
+ kref_get(&acl->acl_kref);

Ð think the comment is highly confusing as it's about one of the
callers, while the function has many.

I'd suggest you move it to core_tpg_check_initiator_node_acl instead.

Also I think iscsit_build_sendtargets_response will need a put on
the nacl, otherwise you'll leak references.

Indeed. All error paths in all target drivers will have to be modified to avoid that an acl reference leak is triggered if transport_init_session() fails after core_tpg_check_initiator_node_acl() succeeded.

Bart.