• Mike Snitzer's avatar
    dm: fix false warning in free_rq_clone() for unmapped requests · e5d8de32
    Mike Snitzer authored
    When stacking request-based dm device on non blk-mq device and
    device-mapper target could not map the request (error target is used,
    multipath target with all paths down, etc), the WARN_ON_ONCE() in
    free_rq_clone() will trigger when it shouldn't.
    
    The warning was added by commit aa6df8dd ("dm: fix free_rq_clone() NULL
    pointer when requeueing unmapped request").  But free_rq_clone() with
    clone->q == NULL is valid usage for the case where
    dm_kill_unmapped_request() initiates request cleanup.
    
    Fix this false warning by just removing the WARN_ON -- it only generated
    false positives and was never useful in catching the intended case
    (completing clone request not being mapped e.g. clone->q being NULL).
    
    Fixes: aa6df8dd ("dm: fix free_rq_clone() NULL pointer when requeueing unmapped request")
    Reported-by: default avatarBart Van Assche <bart.vanassche@sandisk.com>
    Reported-by: default avatarJun'ichi Nomura <j-nomura@ce.jp.nec.com>
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    e5d8de32
dm.c 84.1 KB