iscsi-target: Remove unnecessary wait_for_completion in iscsi_get_thread_set
This patch removes an unnecessary wait_for_completion within iscsi_get_thread_set(), that would wait for 1 second before trying to obtain an inactive struct iscsi_thread_set from iscsi_get_ts_from_inactive_list(). Since iscsi_allocate_thread_sets() will already be adding the newly allocated iscsi_thread_set to the inactive list directly, there is no need to wait here. Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
5ab41ca467
commit
12e4101af4
|
@ -222,25 +222,12 @@ void iscsi_activate_thread_set(struct iscsi_conn *conn, struct iscsi_thread_set
|
||||||
|
|
||||||
struct iscsi_thread_set *iscsi_get_thread_set(void)
|
struct iscsi_thread_set *iscsi_get_thread_set(void)
|
||||||
{
|
{
|
||||||
int allocate_ts = 0;
|
struct iscsi_thread_set *ts;
|
||||||
struct completion comp;
|
|
||||||
struct iscsi_thread_set *ts = NULL;
|
|
||||||
/*
|
|
||||||
* If no inactive thread set is available on the first call to
|
|
||||||
* iscsi_get_ts_from_inactive_list(), sleep for a second and
|
|
||||||
* try again. If still none are available after two attempts,
|
|
||||||
* allocate a set ourselves.
|
|
||||||
*/
|
|
||||||
get_set:
|
get_set:
|
||||||
ts = iscsi_get_ts_from_inactive_list();
|
ts = iscsi_get_ts_from_inactive_list();
|
||||||
if (!ts) {
|
if (!ts) {
|
||||||
if (allocate_ts == 2)
|
|
||||||
iscsi_allocate_thread_sets(1);
|
iscsi_allocate_thread_sets(1);
|
||||||
|
|
||||||
init_completion(&comp);
|
|
||||||
wait_for_completion_timeout(&comp, 1 * HZ);
|
|
||||||
|
|
||||||
allocate_ts++;
|
|
||||||
goto get_set;
|
goto get_set;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue