From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Subject: Re: [PATCH 1/1] bcache: use llist_for_each_entry_safe() in __closure_wake_up() To: Michael Lyle Cc: Coly Li , linux-bcache@vger.kernel.org, linux-block@vger.kernel.org References: <20170926095412.74028-1-colyli@suse.de> <20170926095412.74028-2-colyli@suse.de> <4c14e77e-577f-b7b7-d63a-b4b3a4d9e757@coly.li> <5986f13b-013d-5252-fc70-51dcd40e7335@kernel.dk> From: Jens Axboe Message-ID: <90e74638-c396-a04f-da5c-72ae387f677d@kernel.dk> Date: Wed, 27 Sep 2017 22:52:27 +0200 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 List-ID: On 09/27/2017 10:48 PM, Michael Lyle wrote: > Jens-- > > I think it's a race condition-- the individual closures remain valid. > It's just that the list element has different meanings-- it's either a > list actively being used to wake, or a linkage on one of several lists > that is being used to await wake. If a closure goes back to wait very > quickly after being woken, it can end up connecting its new wait-list > with the being-woken list. Reading it a second time, looks like you are right. OK, then let's just queue it up as-is, I'll add the Fixes line this time. -- Jens Axboe