diff options
author | Nicholas Bellinger <nab@linux-iscsi.org> | 2013-09-07 05:50:36 +0200 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2013-09-11 05:23:30 +0200 |
commit | 12e4101af431b66c734efef9eb359a0b8c6ad90c (patch) | |
tree | 7b05b095437c1732c4d9e90052c7d31de24952d2 /drivers/target | |
parent | iscsi-target: Add thread_set->ts_activate_sem + use common deallocate (diff) | |
download | linux-12e4101af431b66c734efef9eb359a0b8c6ad90c.tar.xz linux-12e4101af431b66c734efef9eb359a0b8c6ad90c.zip |
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>
Diffstat (limited to 'drivers/target')
-rw-r--r-- | drivers/target/iscsi/iscsi_target_tq.c | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/drivers/target/iscsi/iscsi_target_tq.c b/drivers/target/iscsi/iscsi_target_tq.c index ba0ac41889af..151a585a0895 100644 --- a/drivers/target/iscsi/iscsi_target_tq.c +++ b/drivers/target/iscsi/iscsi_target_tq.c @@ -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) { - int allocate_ts = 0; - 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. - */ + struct iscsi_thread_set *ts; + get_set: ts = iscsi_get_ts_from_inactive_list(); if (!ts) { - if (allocate_ts == 2) - iscsi_allocate_thread_sets(1); - - init_completion(&comp); - wait_for_completion_timeout(&comp, 1 * HZ); - - allocate_ts++; + iscsi_allocate_thread_sets(1); goto get_set; } |