summaryrefslogtreecommitdiffstats
path: root/drivers/target
diff options
context:
space:
mode:
authorNicholas Bellinger <nab@linux-iscsi.org>2013-09-07 05:50:36 +0200
committerNicholas Bellinger <nab@linux-iscsi.org>2013-09-11 05:23:30 +0200
commit12e4101af431b66c734efef9eb359a0b8c6ad90c (patch)
tree7b05b095437c1732c4d9e90052c7d31de24952d2 /drivers/target
parentiscsi-target: Add thread_set->ts_activate_sem + use common deallocate (diff)
downloadlinux-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.c19
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;
}