Fix bug in SPLAT taskq:front

While running SPLAT on a kernel with CONFIG_DEBUG_ATOMIC_SLEEP
enabled the taskq:front was flagged as a test which might sleep
which in an unsafe context.  Specifically, the splat_vprint()
function which internally takes a mutex was being called under
a spin lock.  Moving the log function outside the spin lock
cleanly solves this issue.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
Brian Behlendorf 2014-09-30 17:47:10 -04:00
parent e3020723dc
commit 81857a34d1
1 changed files with 2 additions and 1 deletions

View File

@ -814,10 +814,11 @@ splat_taskq_test6_func(void *arg)
spin_lock(&tq_arg->lock); spin_lock(&tq_arg->lock);
tq_arg->order[tq_arg->flag] = tq_id->id; tq_arg->order[tq_arg->flag] = tq_id->id;
tq_arg->flag++; tq_arg->flag++;
spin_unlock(&tq_arg->lock);
splat_vprint(tq_arg->file, tq_arg->name, splat_vprint(tq_arg->file, tq_arg->name,
"Taskqid %d complete for taskq '%s'\n", "Taskqid %d complete for taskq '%s'\n",
tq_id->id, tq_arg->name); tq_id->id, tq_arg->name);
spin_unlock(&tq_arg->lock);
} }
static int static int