• Mikulas Patocka's avatar
    dm integrity: implement fair range locks · 724376a0
    Mikulas Patocka authored
    dm-integrity locks a range of sectors to prevent concurrent I/O or journal
    writeback.  These locks were not fair - so that many small overlapping I/Os
    could starve a large I/O indefinitely.
    
    Fix this by making the range locks fair.  The ranges that are waiting are
    added to the list "wait_list".  If a new I/O overlaps some of the waiting
    I/Os, it is not dispatched, but it is also added to that wait list.
    Entries on the wait list are processed in first-in-first-out order, so
    that an I/O can't starve indefinitely.
    Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    724376a0
dm-integrity.c 93.5 KB