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 -- To unsubscribe from this list: send the line "unsubscribe linux-bcache" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html