]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/clock.c
Disable pristine-tar option in gbp.conf, since there is no pristine-tar branch.
[bcachefs-tools-debian] / libbcachefs / clock.c
index c36bfc627a985d68213cceb9f8f0b1f4cb5c5e2b..3636444511064b51e5a004b953eacf94e7c70d12 100644 (file)
@@ -95,6 +95,7 @@ void bch2_kthread_io_clock_wait(struct io_clock *clock,
                                unsigned long io_until,
                                unsigned long cpu_timeout)
 {
+       bool kthread = (current->flags & PF_KTHREAD) != 0;
        struct io_clock_wait wait;
 
        wait.io_timer.expire    = io_until;
@@ -108,9 +109,9 @@ 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_should_stop())
+               if (kthread && kthread_should_stop())
                        break;
 
                if (wait.expired)
@@ -118,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);