mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-22 05:01:27 +00:00
isert: Handle login pdu reception in more robust way
Properly handle case when login PDU is received before logi response has been sent Signed-off-by: Yan Burman <yanb@mellanox.com> git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/iser@5655 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -759,7 +759,34 @@ int isert_login_req_rx(struct iscsi_cmnd *login_req)
|
||||
goto out;
|
||||
}
|
||||
|
||||
sBUG_ON(dev->login_req != NULL);
|
||||
switch (dev->state) {
|
||||
case CS_INIT:
|
||||
if (dev->login_req != NULL) {
|
||||
sBUG();
|
||||
res = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
break;
|
||||
|
||||
case CS_REQ_BHS: /* Got login request before done handling old one */
|
||||
break;
|
||||
|
||||
case CS_REQ_DATA:
|
||||
case CS_REQ_FINISHED:
|
||||
case CS_RSP_BHS:
|
||||
case CS_RSP_DATA:
|
||||
case CS_RSP_FINISHED:
|
||||
PRINT_WARNING("%s",
|
||||
"Received login PDU while handling previous one\n");
|
||||
res = -EINVAL;
|
||||
goto out;
|
||||
|
||||
default:
|
||||
sBUG();
|
||||
res = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
||||
spin_lock(&dev->pdu_lock);
|
||||
dev->login_req = login_req;
|
||||
|
||||
Reference in New Issue
Block a user