@@ -620,7 +620,6 @@ int btrfs_requeue_work(struct btrfs_work *work)
{
struct btrfs_worker_thread *worker = work->worker;
unsigned long flags;
- int wake = 0;
if (test_and_set_bit(WORK_QUEUED_BIT, &work->flags))
goto out;
@@ -643,12 +642,10 @@ int btrfs_requeue_work(struct btrfs_work *work)
spin_unlock(&worker->workers->lock);
}
if (!worker->working) {
- wake = 1;
worker->working = 1;
+ wake_up_process(worker->task);
}
- if (wake)
- wake_up_process(worker->task);
spin_unlock_irqrestore(&worker->lock, flags);
out:
@@ -667,7 +664,6 @@ int btrfs_queue_worker(struct btrfs_workers *workers, struct btrfs_work *work)
{
struct btrfs_worker_thread *worker;
unsigned long flags;
- int wake = 0;
/* don't requeue something already on a list */
if (test_and_set_bit(WORK_QUEUED_BIT, &work->flags))
@@ -703,12 +699,11 @@ int btrfs_queue_worker(struct btrfs_workers *workers, struct btrfs_work *work)
* avoid calling into wake_up_process if this thread has already
* been kicked
*/
- if (!worker->working)
- wake = 1;
- worker->working = 1;
-
- if (wake)
+ if (!worker->working) {
+ worker->working = 1;
wake_up_process(worker->task);
+ }
+
spin_unlock_irqrestore(&worker->lock, flags);
out: