On 2017/9/26 下午3:16, 박병철/선임연구원/SW Platform(연)AOT팀(byungchul.park@xxxxxxx) wrote: >> -----Original Message----- >> From: Coly Li [mailto:i@xxxxxxx] >> Sent: Tuesday, September 26, 2017 4:09 PM >> To: Michael Lyle; Coly Li >> Cc: linux-bcache@xxxxxxxxxxxxxxx; linux-block@xxxxxxxxxxxxxxx; >> axboe@xxxxxxxxx; Eric Wheeler; Byungchul Park; Kent Overstreet >> Subject: Re: [PATCH 04/12] bcache: Don't reinvent the wheel but use existing >> llist API >> >> 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 Mike, >> >> Good catch! I see llist_del_all() but forget cl->list can be modified in >> closure_wait(). Yes there is potential chance to mislead >> llist_for_each_entry() to iterate wrong list. >> llist_for_each_entry_safe() should be used here. I will send a fix to >> Jens, hope to catch up 4.14 still. > > I see. You have a plan to do it. Please fix it. Oh, I just see this email, when I replied your last one. Sure, let me fix my fault. -- 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