|
@@ -488,7 +488,7 @@ void iscsit_add_cmd_to_immediate_queue(
|
|
|
atomic_set(&conn->check_immediate_queue, 1);
|
|
|
spin_unlock_bh(&conn->immed_queue_lock);
|
|
|
|
|
|
- wake_up_process(conn->thread_set->tx_thread);
|
|
|
+ wake_up(&conn->queues_wq);
|
|
|
}
|
|
|
|
|
|
struct iscsi_queue_req *iscsit_get_cmd_from_immediate_queue(struct iscsi_conn *conn)
|
|
@@ -562,7 +562,7 @@ void iscsit_add_cmd_to_response_queue(
|
|
|
atomic_inc(&cmd->response_queue_count);
|
|
|
spin_unlock_bh(&conn->response_queue_lock);
|
|
|
|
|
|
- wake_up_process(conn->thread_set->tx_thread);
|
|
|
+ wake_up(&conn->queues_wq);
|
|
|
}
|
|
|
|
|
|
struct iscsi_queue_req *iscsit_get_cmd_from_response_queue(struct iscsi_conn *conn)
|
|
@@ -616,6 +616,24 @@ static void iscsit_remove_cmd_from_response_queue(
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+bool iscsit_conn_all_queues_empty(struct iscsi_conn *conn)
|
|
|
+{
|
|
|
+ bool empty;
|
|
|
+
|
|
|
+ spin_lock_bh(&conn->immed_queue_lock);
|
|
|
+ empty = list_empty(&conn->immed_queue_list);
|
|
|
+ spin_unlock_bh(&conn->immed_queue_lock);
|
|
|
+
|
|
|
+ if (!empty)
|
|
|
+ return empty;
|
|
|
+
|
|
|
+ spin_lock_bh(&conn->response_queue_lock);
|
|
|
+ empty = list_empty(&conn->response_queue_list);
|
|
|
+ spin_unlock_bh(&conn->response_queue_lock);
|
|
|
+
|
|
|
+ return empty;
|
|
|
+}
|
|
|
+
|
|
|
void iscsit_free_queue_reqs_for_conn(struct iscsi_conn *conn)
|
|
|
{
|
|
|
struct iscsi_queue_req *qr, *qr_tmp;
|