• Mike Snitzer's avatar
    dm cache: do not add migration to completed list before unhooking bio · 80ae49aa
    Mike Snitzer authored
    When completing an overwrite bio, in overwrite_endio(), the associated
    migration should not be added to the 'completed_migrations' until the
    bio's fields are restored with dm_unhook_bio().
    
    Otherwise, do_worker() can race to process 'completed_migrations' before
    dm_unhook_bio() -- so the bio's bi_end_io is incorrect.  This is
    unlikely to cause any problems given the current code but should be
    fixed on the basis of correctness.
    
    Also, the cache's spinlock only needs to be held when manipulating the
    'completed_migrations' list -- other changes don't need protection.
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    Acked-by: default avatarJoe Thornber <ejt@redhat.com>
    80ae49aa
dm-cache-target.c 76.9 KB