• Chris Mason's avatar
    Btrfs: Fix the multi-bio code to save the original bio for completion · 7d2b4daa
    Chris Mason authored
    The multi-bio code is responsible for duplicating blocks in raid1 and
    single spindle duplication.  It has counters to make sure all of
    the locations for a given extent are properly written before io completion
    is returned to the higher layers.
    
    But, it didn't always complete the same bio it was given, sometimes a
    clone was completed instead.  This lead to problems with the async
    work queues because they saved a pointer to the bio in a struct off
    bi_private.
    
    The fix is to remember the original bio and only complete that one.
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
    7d2b4daa
volumes.c 62.7 KB