mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
bcachefs: bch2_kthread_io_clock_wait() no longer sleeps until full amount
Drop t he loop in bch2_kthread_io_clock_wait(): this allows the code that uses it to be woken up for other reasons, and fixes a bug where rebalance wouldn't wake up when a scan was requested. This raises the possibility of spurious wakeups, but callers should always be able to handle that reasonably well. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
741c1d3ec1
commit
d92b83f592
@ -109,7 +109,7 @@ void bch2_kthread_io_clock_wait(struct io_clock *clock,
|
||||
if (cpu_timeout != MAX_SCHEDULE_TIMEOUT)
|
||||
mod_timer(&wait.cpu_timer, cpu_timeout + jiffies);
|
||||
|
||||
while (1) {
|
||||
do {
|
||||
set_current_state(TASK_INTERRUPTIBLE);
|
||||
if (kthread && kthread_should_stop())
|
||||
break;
|
||||
@ -119,7 +119,7 @@ void bch2_kthread_io_clock_wait(struct io_clock *clock,
|
||||
|
||||
schedule();
|
||||
try_to_freeze();
|
||||
}
|
||||
} while (0);
|
||||
|
||||
__set_current_state(TASK_RUNNING);
|
||||
del_timer_sync(&wait.cpu_timer);
|
||||
|
Loading…
Reference in New Issue
Block a user