mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 22:26:55 +00:00
scsi: elx: efct: Fix vport list linkage in LIO backend
vport is linked onto the driver's vport list at allocation, but failure
path fails to remove it from the list.
Change location of linkage until after complete vport completion.
Link: https://lore.kernel.org/r/20210619155729.20049-1-jsmart2021@gmail.com
Fixes: 692e5d73a8
("scsi: elx: efct: LIO backend interface routines")
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Co-developed-by: Ram Vegesna <ram.vegesna@broadcom.com>
Signed-off-by: Ram Vegesna <ram.vegesna@broadcom.com>
Signed-off-by: James Smart <james.smart@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
f6060eb134
commit
f7c95d7460
1 changed files with 4 additions and 4 deletions
|
@ -832,10 +832,6 @@ efct_lio_npiv_make_nport(struct target_fabric_configfs *tf,
|
|||
}
|
||||
|
||||
vport_list->lio_vport = lio_vport;
|
||||
spin_lock_irqsave(&efct->tgt_efct.efct_lio_lock, flags);
|
||||
INIT_LIST_HEAD(&vport_list->list_entry);
|
||||
list_add_tail(&vport_list->list_entry, &efct->tgt_efct.vport_list);
|
||||
spin_unlock_irqrestore(&efct->tgt_efct.efct_lio_lock, flags);
|
||||
|
||||
memset(&vport_id, 0, sizeof(vport_id));
|
||||
vport_id.port_name = npiv_wwpn;
|
||||
|
@ -853,6 +849,10 @@ efct_lio_npiv_make_nport(struct target_fabric_configfs *tf,
|
|||
}
|
||||
|
||||
lio_vport->fc_vport = new_fc_vport;
|
||||
spin_lock_irqsave(&efct->tgt_efct.efct_lio_lock, flags);
|
||||
INIT_LIST_HEAD(&vport_list->list_entry);
|
||||
list_add_tail(&vport_list->list_entry, &efct->tgt_efct.vport_list);
|
||||
spin_unlock_irqrestore(&efct->tgt_efct.efct_lio_lock, flags);
|
||||
|
||||
return &lio_vport->vport_wwn;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue