On Sun, 24 May 2009 13:50:43 -0500 James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx> wrote: > On Sun, 2009-05-24 at 09:29 -0500, James Bottomley wrote: > > The problem occurs when async_synchronize_full_domain() is called > > when the async_pending list is not empty. This will cause > > lowest_running() to return the cookie of the first entry on the > > async_pending list, which might be nothing at all to do with the > > domain being asked for and thus cause the domain synchronization to > > wait for an unrelated domain. This can cause a deadlock if domain > > synchronization is used from one domain to wait for another. > > > > Fix by running over the async_pending list to see if any pending > > items actually belong to our domain (and return their cookies if > > they do). > > > > Signed-off-by: James Bottomley > > <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx> > > OK, so that version locked up under testing ... this version doesn't > --- I think the phrase "MUST be called with the lock held!" was > supposed to be some sort of clue ... there's not many comments there.. but the ones that exist do mean something ;-) I'll craft this patch into your original description and send it to Linus to see if he'll take it for .30, otherwise it'll go for .31 -- Arjan van de Ven Intel Open Source Technology Centre For development, discussion and tips for power savings, visit http://www.lesswatts.org -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html