On 6/14/24 6:22 PM, Jens Axboe wrote: >> The reason you need that >> >> __set_current_state(TASK_RUNNING); >> >> in the *other* place is the very fact that you didn't call schedule at >> all after doing a >> >> prepare_to_wait(&ctx->rsrc_quiesce_wq, &we, TASK_INTERRUPTIBLE); >> >> So the bug was that the code had the __set_current_state() in exactly >> the wrong place. >> >> But the fix didn't remove the bogus one, so it all looks entirely like >> voodoo. > > I'll kill that other redundant one. Honestly I think it's cleaner to kill both of them, and just call finish_wait() when we now we're going to break anyway. Yes that'll be an extra check after the break, but that doesn't matter. That's more readable than random __set_current_state() calls. Will do a separate patch once I reshuffle for -rc4 anyway. -- Jens Axboe