Skip to content
  • Li Dongyang's avatar
    xen-blkfront: fix a deadlock while handling discard response · 69ef68ce
    Li Dongyang authored
    
    
    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: default avatarLi Dongyang <lidongyang@novell.com>
    [v1: Updated description a bit and removed comment from source]
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    69ef68ce