• Mikulas Patocka's avatar
    dm: skip second flush on bio unsupported error · 708e9295
    Mikulas Patocka authored
    When processing barriers, skip the second flush if processing the bio
    failed with -EOPNOTSUPP.  This can happen with discard+barrier requests.
    If the device doesn't support discard, there would be two useless
    SYNCHRONIZE CACHE commands.  The first dm_flush cannot be so easily
    optimized out, so we leave it there.
    
    Previously, -EOPNOTSUPP could be received in dec_pending only with empty
    barriers and we ignored that error, assuming the device not supporting
    cache flushes has cache always consistent.  With the addition of discard
    barriers, this -EOPNOTSUPP can also be generated by discards and we
    must record it in md->barrier_error for process_barrier.
    Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
    708e9295
dm.c 61.9 KB