mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-24 19:12:14 +00:00
scsi: target: Move cmd counter allocation
[ Upstream commit4edba7e4a8] iSCSI needs to allocate its cmd counter per connection for MCS support where we need to stop and wait on commands running on a connection instead of per session. This moves the cmd counter allocation to target_setup_session() which is used by drivers that need the stop+wait behavior per session. xcopy doesn't need stop+wait at all, so we will be OK moving the cmd counter allocation outside of transport_init_session(). Signed-off-by: Mike Christie <michael.christie@oracle.com> Link: https://lore.kernel.org/r/20230319015620.96006-3-michael.christie@oracle.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Stable-dep-of:395cee83d0("scsi: target: iscsit: Stop/wait on cmds during conn close") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
1eaaf1b828
commit
b51e30b584
@@ -461,8 +461,6 @@ static const struct target_core_fabric_ops xcopy_pt_tfo = {
|
||||
|
||||
int target_xcopy_setup_pt(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
xcopy_wq = alloc_workqueue("xcopy_wq", WQ_MEM_RECLAIM, 0);
|
||||
if (!xcopy_wq) {
|
||||
pr_err("Unable to allocate xcopy_wq\n");
|
||||
@@ -479,9 +477,7 @@ int target_xcopy_setup_pt(void)
|
||||
INIT_LIST_HEAD(&xcopy_pt_nacl.acl_list);
|
||||
INIT_LIST_HEAD(&xcopy_pt_nacl.acl_sess_list);
|
||||
memset(&xcopy_pt_sess, 0, sizeof(struct se_session));
|
||||
ret = transport_init_session(&xcopy_pt_sess);
|
||||
if (ret < 0)
|
||||
goto destroy_wq;
|
||||
transport_init_session(&xcopy_pt_sess);
|
||||
|
||||
xcopy_pt_nacl.se_tpg = &xcopy_pt_tpg;
|
||||
xcopy_pt_nacl.nacl_sess = &xcopy_pt_sess;
|
||||
@@ -490,19 +486,12 @@ int target_xcopy_setup_pt(void)
|
||||
xcopy_pt_sess.se_node_acl = &xcopy_pt_nacl;
|
||||
|
||||
return 0;
|
||||
|
||||
destroy_wq:
|
||||
destroy_workqueue(xcopy_wq);
|
||||
xcopy_wq = NULL;
|
||||
return ret;
|
||||
}
|
||||
|
||||
void target_xcopy_release_pt(void)
|
||||
{
|
||||
if (xcopy_wq) {
|
||||
if (xcopy_wq)
|
||||
destroy_workqueue(xcopy_wq);
|
||||
transport_uninit_session(&xcopy_pt_sess);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user