• L
    xen-blkfront: fix a deadlock while handling discard response · 69ef68ce
    Li Dongyang 提交于
    When we get -EOPNOTSUPP response for a discard request, we will clear
    the discard flag on the request queue so we won't attempt to send discard
    requests to backend again, and this should be protected under rq->queue_lock.
    However, when we setup the request queue, we pass blkif_io_lock to
    blk_init_queue so rq->queue_lock is blkif_io_lock indeed, and this lock
    is already taken when we are in blkif_interrpt, so remove the
    spin_lock/spin_unlock when we clear the discard flag or we will end up
    with deadlock here
    Signed-off-by: NLi Dongyang <lidongyang@novell.com>
    [v1: Updated description a bit and removed comment from source]
    Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    69ef68ce
xen-blkfront.c 36.4 KB