On 3/8/22 9:09 PM, Wenchao Hao wrote: > @@ -3143,8 +3145,6 @@ void iscsi_conn_teardown(struct iscsi_cls_conn *cls_conn) > mutex_unlock(&session->eh_mutex); > > iscsi_destroy_conn(cls_conn); This should then be a iscsi_put_conn. So basically it balances out. iscsi_alloc_conn requires iscsi_put_conn. The put releases what is done in the alloc. The put on the parent is done in the release though. iscsi_add_conn requires iscsi_remove_conn. The remove undoes what was done in the add We don't want a iscsi_destroy_conn which does a iscsi_free_conn because it makes it confusing.