Re: [PATCH V2 1/5] block: introduce blk_quiesce_timeout() and blk_unquiesce_timeout()

2018-05-01 Thread jianchao.wang
Hi Ming On 05/02/2018 11:33 AM, Ming Lei wrote: > No, there isn't such race, the 'mod_timer' doesn't make a difference > because 'q->timeout_off' will be visible in new work func after > cancel_work_sync() returns. So even the timer is expired, work func > still returns immediately. Yes, you are

Re: [PATCH V2 1/5] block: introduce blk_quiesce_timeout() and blk_unquiesce_timeout()

2018-05-01 Thread Ming Lei
On Wed, May 02, 2018 at 10:23:35AM +0800, jianchao.wang wrote: > Hi ming > > On 04/29/2018 11:41 PM, Ming Lei wrote: > > > > +static void __blk_unquiesce_timeout(struct request_queue *q) > > +{ > > + unsigned long flags; > > + > > + spin_lock_irqsave(q->queue_lock, flags); > > +

Re: [PATCH V2 1/5] block: introduce blk_quiesce_timeout() and blk_unquiesce_timeout()

2018-05-01 Thread jianchao.wang
Hi ming On 04/29/2018 11:41 PM, Ming Lei wrote: > > +static void __blk_unquiesce_timeout(struct request_queue *q) > +{ > + unsigned long flags; > + > + spin_lock_irqsave(q->queue_lock, flags); > + q->timeout_off = false; > + spin_unlock_irqrestore(q->queue_lock, flags); > +} > +