scsi: iscsi: Allow iscsi_if_stop_conn() to be called from kernel
iscsi_if_stop_conn() is only called from the userspace interface but in a subsequent commit we will want to call it from the kernel interface to allow drivers like qedi to remove sessions from inside the kernel during shutdown. This removes the iscsi_uevent code from iscsi_if_stop_conn() so we can call it in a new helper. Link: https://lore.kernel.org/r/20220616222738.5722-3-michael.christie@oracle.com Tested-by: Nilesh Javali <njavali@marvell.com> Reviewed-by: Nilesh Javali <njavali@marvell.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
c577ab7ba5
commit
3328333b47
|
@ -2257,16 +2257,8 @@ static void iscsi_if_disconnect_bound_ep(struct iscsi_cls_conn *conn,
|
|||
}
|
||||
}
|
||||
|
||||
static int iscsi_if_stop_conn(struct iscsi_transport *transport,
|
||||
struct iscsi_uevent *ev)
|
||||
static int iscsi_if_stop_conn(struct iscsi_cls_conn *conn, int flag)
|
||||
{
|
||||
int flag = ev->u.stop_conn.flag;
|
||||
struct iscsi_cls_conn *conn;
|
||||
|
||||
conn = iscsi_conn_lookup(ev->u.stop_conn.sid, ev->u.stop_conn.cid);
|
||||
if (!conn)
|
||||
return -EINVAL;
|
||||
|
||||
ISCSI_DBG_TRANS_CONN(conn, "iscsi if conn stop.\n");
|
||||
/*
|
||||
* If this is a termination we have to call stop_conn with that flag
|
||||
|
@ -3713,7 +3705,12 @@ static int iscsi_if_transport_conn(struct iscsi_transport *transport,
|
|||
case ISCSI_UEVENT_DESTROY_CONN:
|
||||
return iscsi_if_destroy_conn(transport, ev);
|
||||
case ISCSI_UEVENT_STOP_CONN:
|
||||
return iscsi_if_stop_conn(transport, ev);
|
||||
conn = iscsi_conn_lookup(ev->u.stop_conn.sid,
|
||||
ev->u.stop_conn.cid);
|
||||
if (!conn)
|
||||
return -EINVAL;
|
||||
|
||||
return iscsi_if_stop_conn(conn, ev->u.stop_conn.flag);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue