diff options
| -rw-r--r-- | mm/backing-dev.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/mm/backing-dev.c b/mm/backing-dev.c index 94a047bb6c3..a87da524a4a 100644 --- a/mm/backing-dev.c +++ b/mm/backing-dev.c | |||
| @@ -401,6 +401,13 @@ static int bdi_forker_thread(void *ptr) | |||
| 401 | } | 401 | } |
| 402 | 402 | ||
| 403 | spin_lock_bh(&bdi_lock); | 403 | spin_lock_bh(&bdi_lock); |
| 404 | /* | ||
| 405 | * In the following loop we are going to check whether we have | ||
| 406 | * some work to do without any synchronization with tasks | ||
| 407 | * waking us up to do work for them. So we have to set task | ||
| 408 | * state already here so that we don't miss wakeups coming | ||
| 409 | * after we verify some condition. | ||
| 410 | */ | ||
| 404 | set_current_state(TASK_INTERRUPTIBLE); | 411 | set_current_state(TASK_INTERRUPTIBLE); |
| 405 | 412 | ||
| 406 | list_for_each_entry(bdi, &bdi_list, bdi_list) { | 413 | list_for_each_entry(bdi, &bdi_list, bdi_list) { |
