scsi: iscsi: Release endpoint ID when its freed
authorMike Christie <michael.christie@oracle.com>
Fri, 8 Apr 2022 00:13:07 +0000 (19:13 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 27 Apr 2022 12:41:10 +0000 (14:41 +0200)
commit907bf6e63e733170be99467455c08e627af833c9
tree874c0e75129dbc4a7e68c20b9f2d3fdab2bae2a5
parentaec79edf238505a89814a9e485210005c90e950b
scsi: iscsi: Release endpoint ID when its freed

[ Upstream commit 3c6ae371b8a1ffba1fc415989fd581ebf841ed0a ]

We can't release the endpoint ID until all references to the endpoint have
been dropped or it could be allocated while in use. This has us use an idr
instead of looping over all conns to find a free ID and then free the ID
when all references have been dropped instead of when the device is only
deleted.

Link: https://lore.kernel.org/r/20220408001314.5014-4-michael.christie@oracle.com
Tested-by: Manish Rangankar <mrangankar@marvell.com>
Reviewed-by: Lee Duncan <lduncan@suse.com>
Reviewed-by: Chris Leech <cleech@redhat.com>
Reviewed-by: Wu Bo <wubo40@huawei.com>
Signed-off-by: Mike Christie <michael.christie@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/scsi/scsi_transport_iscsi.c
include/scsi/scsi_transport_iscsi.h