• Mikulas Patocka's avatar
    dm: implement basic barrier support · af7e466a
    Mikulas Patocka authored
    Barriers are submitted to a worker thread that issues them in-order.
    
    The thread is modified so that when it sees a barrier request it waits
    for all pending IO before the request then submits the barrier and
    waits for it.  (We must wait, otherwise it could be intermixed with
    following requests.)
    
    Errors from the barrier request are recorded in a per-device barrier_error
    variable. There may be only one barrier request in progress at once.
    
    For now, the barrier request is converted to a non-barrier request when
    sending it to the underlying device.
    
    This patch guarantees correct barrier behavior if the underlying device
    doesn't perform write-back caching. The same requirement existed before
    barriers were supported in dm.
    
    Bottom layer barrier support (sending barriers by target drivers) and
    handling devices with write-back caches will be done in further patches.
    Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
    af7e466a
dm.c 37.3 KB