Re: [PATCH v5 07/20] job.h: add _locked duplicates for job API functions called with and without job_mutex
On 17/02/2022 15:20, Stefan Hajnoczi wrote: > On Tue, Feb 08, 2022 at 09:35:00AM -0500, Emanuele Giuseppe Esposito wrote: >> static void job_exit(void *opaque) >> { >> Job *job = (Job *)opaque; >> AioContext *ctx; >> +JOB_LOCK_GUARD(); >> >> job_ref(job); >> aio_context_acquire(job->aio_context); > > The previous patch said: > > We don't want this, as job_lock must be taken inside the AioContext > lock, and taking it outside would cause deadlocks. This was misleading (and thus removed). You have to remember that at this point JOB_LOCK_GUARD is nop. I will add this to the commit message too. > > Therefore this looks like a deadlock. >
Re: [PATCH v5 07/20] job.h: add _locked duplicates for job API functions called with and without job_mutex
On Tue, Feb 08, 2022 at 09:35:00AM -0500, Emanuele Giuseppe Esposito wrote: > static void job_exit(void *opaque) > { > Job *job = (Job *)opaque; > AioContext *ctx; > +JOB_LOCK_GUARD(); > > job_ref(job); > aio_context_acquire(job->aio_context); The previous patch said: We don't want this, as job_lock must be taken inside the AioContext lock, and taking it outside would cause deadlocks. Therefore this looks like a deadlock. signature.asc Description: PGP signature