Re: [PATCH v2] virtio-blk: Fix WARN_ON_ONCE in virtio_queue_rq()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Michael,

Can this patch be merged to the next rc?
We received two bug reports about this issue and need to fix it.

Regards,
Suwan Kim


On Wed, Aug 31, 2022 at 9:44 PM Pankaj Raghav <pankydev8@xxxxxxxxx> wrote:
>
> On Wed, Aug 31, 2022 at 12:01:53AM +0900, Suwan Kim wrote:
> > If a request fails at virtio_queue_rqs(), it is inserted to requeue_list
> > and passed to virtio_queue_rq(). Then blk_mq_start_request() can be called
> > again at virtio_queue_rq() and trigger WARN_ON_ONCE like below trace because
> > request state was already set to MQ_RQ_IN_FLIGHT in virtio_queue_rqs()
> > despite the failure.
> >
> > To avoid calling blk_mq_start_request() twice, This patch moves the
> > execution of blk_mq_start_request() to the end of virtblk_prep_rq().
> > And instead of requeuing failed request to plug list in the error path of
> > virtblk_add_req_batch(), it uses blk_mq_requeue_request() to change failed
> > request state to MQ_RQ_IDLE. Then virtblk can safely handle the request
> > on the next trial.
> >
> > Fixes: 0e9911fa768f ("virtio-blk: support mq_ops->queue_rqs()")
> > Reported-by: Alexandre Courbot <acourbot@xxxxxxxxxxxx>
> > Tested-by: Alexandre Courbot <acourbot@xxxxxxxxxxxx>
> > Signed-off-by: Suwan Kim <suwan.kim027@xxxxxxxxx>
> > ---
> Looks good.
> Reviewed-by: Pankaj Raghav <p.raghav@xxxxxxxxxxx>



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux