On Tue, Sep 01, 2020 at 06:07:38PM +0800, Ming Lei wrote: > Commit e8c7d14ac6c3 ("block: revert back to synchronous request_queue removal") > stops to release request queue from wq context because that commit > supposed all blk_put_queue() is called in context which is allowed > to sleep. However, this assumption isn't true because we release disk's > reference in partition's percpu_ref's ->release() which doesn't allow > to sleep, because the ->release() is run via call_rcu(). > > Fixes this issue by moving put disk reference into hd_struct_free_work() > > Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx> > Fixes: e8c7d14ac6c3 ("block: revert back to synchronous request_queue removal") > Reported-by: Ilya Dryomov <idryomov@xxxxxxxxx> > Tested-by: Ilya Dryomov <idryomov@xxxxxxxxx> > Cc: Luis Chamberlain <mcgrof@xxxxxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxx> > Cc: Bart Van Assche <bvanassche@xxxxxxx> Looks good, Reviewed-by: Christoph Hellwig <hch@xxxxxx>