Subject: Re: Coverity: io_wqe_worker(): Program hangs

From: Jens Axboe <[email-masked]>
Date: Mon, 28 Oct 2019 17:27:59 -0600

On 10/28/19 5:05 PM, coverity-bot wrote:
> Hello!
> 
> This is an experimental automated report about issues detected by Coverity
> from a scan of next-20191025 as part of the linux-next weekly scan project:
> https://scan.coverity.com/projects/linux-next-weekly-scan
> 
> You're getting this email because you were associated with the identified
> lines of code (noted below) that were touched by recent commits:
> 
> 46134db8fdc5 ("io-wq: small threadpool implementation for io_uring")
> 
> Coverity reported the following:
> 
> *** CID 1487365:  Program hangs  (LOCK)
> /fs/io-wq.c: 349 in io_wqe_worker()
> 343     			io_worker_handle_work(worker);
> 344     		else
> 345     			spin_unlock(&wqe->lock);
> 346     	}
> 347
> 348     	io_worker_exit(worker);
> vvv     CID 1487365:  Program hangs  (LOCK)
> vvv     Returning without unlocking "(*wqe).lock".
> 349     	return 0;
> 350     }
> 351
> 352     /*
> 353      * Check head of free list for an available worker. If one isn't available,
> 354      * caller must wake up the wq manager to create one.
> 
> If this is a false positive, please let us know so we can mark it as
> such, or teach the Coverity rules to be smarter. If not, please make
> sure fixes get into linux-next. :) For patches fixing this, please
> include:

It's a false positive, lock is dropped on non-zero return.

-- 
Jens Axboe