mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 10:49:33 +00:00
target: Drop config_item_name usage in fabric TFO->free_wwn()
This patch removes config_item_name() informational usage of TFO->free_wwn() treewide in loopback, tcm_fc, ib_srpt and tcm_vhost module code. Using v4 target_core_fabric_configfs.c logic, a fabric call for config_item_name() in TFO->drop_wwn() context returns NULL as target_fabric_drop_wwn() invoking config_item_put() -> config_group_put() will release fabric_port->port_wwn.wwn_group before the last config_item_put() -> TFO->drop_wwn() is invoked. Reported-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
97c34f3b04
commit
6297b07cbc
2 changed files with 5 additions and 7 deletions
|
@ -1342,17 +1342,16 @@ void tcm_loop_drop_scsi_hba(
|
||||||
{
|
{
|
||||||
struct tcm_loop_hba *tl_hba = container_of(wwn,
|
struct tcm_loop_hba *tl_hba = container_of(wwn,
|
||||||
struct tcm_loop_hba, tl_hba_wwn);
|
struct tcm_loop_hba, tl_hba_wwn);
|
||||||
int host_no = tl_hba->sh->host_no;
|
|
||||||
|
pr_debug("TCM_Loop_ConfigFS: Deallocating emulated Target"
|
||||||
|
" SAS Address: %s at Linux/SCSI Host ID: %d\n",
|
||||||
|
tl_hba->tl_wwn_address, tl_hba->sh->host_no);
|
||||||
/*
|
/*
|
||||||
* Call device_unregister() on the original tl_hba->dev.
|
* Call device_unregister() on the original tl_hba->dev.
|
||||||
* tcm_loop_fabric_scsi.c:tcm_loop_release_adapter() will
|
* tcm_loop_fabric_scsi.c:tcm_loop_release_adapter() will
|
||||||
* release *tl_hba;
|
* release *tl_hba;
|
||||||
*/
|
*/
|
||||||
device_unregister(&tl_hba->dev);
|
device_unregister(&tl_hba->dev);
|
||||||
|
|
||||||
pr_debug("TCM_Loop_ConfigFS: Deallocated emulated Target"
|
|
||||||
" SAS Address: %s at Linux/SCSI Host ID: %d\n",
|
|
||||||
config_item_name(&wwn->wwn_group.cg_item), host_no);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Start items for tcm_loop_cit */
|
/* Start items for tcm_loop_cit */
|
||||||
|
|
|
@ -436,8 +436,7 @@ static void ft_del_lport(struct se_wwn *wwn)
|
||||||
struct ft_lport_acl *lacl = container_of(wwn,
|
struct ft_lport_acl *lacl = container_of(wwn,
|
||||||
struct ft_lport_acl, fc_lport_wwn);
|
struct ft_lport_acl, fc_lport_wwn);
|
||||||
|
|
||||||
pr_debug("del lport %s\n",
|
pr_debug("del lport %s\n", lacl->name);
|
||||||
config_item_name(&wwn->wwn_group.cg_item));
|
|
||||||
mutex_lock(&ft_lport_lock);
|
mutex_lock(&ft_lport_lock);
|
||||||
list_del(&lacl->list);
|
list_del(&lacl->list);
|
||||||
mutex_unlock(&ft_lport_lock);
|
mutex_unlock(&ft_lport_lock);
|
||||||
|
|
Loading…
Reference in a new issue