mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-04 03:33:58 +08:00
scsi: iscsi: Drop session lock in iscsi_session_chkready()
The session lock in iscsi_session_chkready() is not needed because when we transition from logged into to another state we will block and/or remove the devices under the session, so no new I/O will be sent to the drivers after the block/remove. I/O that races with the block/removal is cleaned up by the drivers when it handles all outstanding I/O, so this just added an extra lock in the main I/O path. This patch removes the lock like other transport classes. Link: https://lore.kernel.org/r/20210207044608.27585-10-michael.christie@oracle.com Reviewed-by: Lee Duncan <lduncan@suse.com> Signed-off-by: Mike Christie <michael.christie@oracle.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
5b0ec4cf04
commit
d39bfd0686
@ -1701,10 +1701,8 @@ static const char *iscsi_session_state_name(int state)
|
||||
|
||||
int iscsi_session_chkready(struct iscsi_cls_session *session)
|
||||
{
|
||||
unsigned long flags;
|
||||
int err;
|
||||
|
||||
spin_lock_irqsave(&session->lock, flags);
|
||||
switch (session->state) {
|
||||
case ISCSI_SESSION_LOGGED_IN:
|
||||
err = 0;
|
||||
@ -1719,7 +1717,6 @@ int iscsi_session_chkready(struct iscsi_cls_session *session)
|
||||
err = DID_NO_CONNECT << 16;
|
||||
break;
|
||||
}
|
||||
spin_unlock_irqrestore(&session->lock, flags);
|
||||
return err;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(iscsi_session_chkready);
|
||||
|
Loading…
Reference in New Issue
Block a user