diff options
Diffstat (limited to 'fs/btrfs/async-thread.c')
| -rw-r--r-- | fs/btrfs/async-thread.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/btrfs/async-thread.c b/fs/btrfs/async-thread.c index 7f88628a1a72..019e8af449ab 100644 --- a/fs/btrfs/async-thread.c +++ b/fs/btrfs/async-thread.c | |||
| @@ -299,8 +299,8 @@ int btrfs_start_workers(struct btrfs_workers *workers, int num_workers) | |||
| 299 | "btrfs-%s-%d", workers->name, | 299 | "btrfs-%s-%d", workers->name, |
| 300 | workers->num_workers + i); | 300 | workers->num_workers + i); |
| 301 | if (IS_ERR(worker->task)) { | 301 | if (IS_ERR(worker->task)) { |
| 302 | kfree(worker); | ||
| 303 | ret = PTR_ERR(worker->task); | 302 | ret = PTR_ERR(worker->task); |
| 303 | kfree(worker); | ||
| 304 | goto fail; | 304 | goto fail; |
| 305 | } | 305 | } |
| 306 | 306 | ||
| @@ -424,11 +424,11 @@ int btrfs_requeue_work(struct btrfs_work *work) | |||
| 424 | * list | 424 | * list |
| 425 | */ | 425 | */ |
| 426 | if (worker->idle) { | 426 | if (worker->idle) { |
| 427 | spin_lock_irqsave(&worker->workers->lock, flags); | 427 | spin_lock(&worker->workers->lock); |
| 428 | worker->idle = 0; | 428 | worker->idle = 0; |
| 429 | list_move_tail(&worker->worker_list, | 429 | list_move_tail(&worker->worker_list, |
| 430 | &worker->workers->worker_list); | 430 | &worker->workers->worker_list); |
| 431 | spin_unlock_irqrestore(&worker->workers->lock, flags); | 431 | spin_unlock(&worker->workers->lock); |
| 432 | } | 432 | } |
| 433 | if (!worker->working) { | 433 | if (!worker->working) { |
| 434 | wake = 1; | 434 | wake = 1; |
