Thanks everyone-- Yes, this looks good to me and works in testing. Mike On Tue, Sep 26, 2017 at 12:46 AM, Coly Li <i@xxxxxxx> wrote: > On 2017/9/26 下午12:38, Michael Lyle wrote: >> I believe this introduces a critical bug. >> >> cl->list is used to link together the llists for both things waiting, >> and for things that are being woken. >> >> If a closure that is woken decides to wait again, it will corrupt the >> llist that __closure_wake_up is using. >> >> The previous iteration structure gets the next element of the list >> before waking and is therefore safe. > > > Hi Michael and Byungchul, > > This is my fault to suggest Byungchul to change his correct patch into > wrong one. But it's good to learn such an implicit race behind bcache > code. I just post a patch to explain how this race may happen and > corrupt the reverse list iteration. Could you please to review the fix ? > > And thanks to Michael again to catch this bug. > > -- > Coly Li