• Ming Lei's avatar
    dm: improve BLK_STS_DM_REQUEUE and BLK_STS_AGAIN handling · 444fe04f
    Ming Lei authored
    If either BLK_STS_DM_REQUEUE or BLK_STS_AGAIN is returned for POLLED
    io, we requeue the original bio into deferred list and kick md->wq to
    re-submit it to block layer.
    
    Improve the handling in the following way:
    
    1) Factor out dm_handle_requeue() for handling dm_io requeue.
    
    2) Unify handling for BLK_STS_DM_REQUEUE and BLK_STS_AGAIN: clear
       REQ_POLLED for BLK_STS_DM_REQUEUE too, for the sake of simplicity,
       given BLK_STS_DM_REQUEUE is very unusual.
    
    3) Queue md->wq explicitly in dm_handle_requeue(), so requeue handling
       becomes more robust.
    Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
    Signed-off-by: default avatarMike Snitzer <snitzer@kernel.org>
    444fe04f
dm.c 74.4 KB