• Josef Bacik's avatar
    Btrfs: stop all workers before cleaning up roots · 13e6c37b
    Josef Bacik authored
    Dave reported a panic because the extent_root->commit_root was NULL in the
    caching kthread.  That is because we just unset it in free_root_pointers, which
    is not the correct thing to do, we have to either wait for the caching kthread
    to complete or hold the extent_commit_sem lock so we know the thread has exited.
    This patch makes the kthreads all stop first and then we do our cleanup.  This
    should fix the race.  Thanks,
    Reported-by: default avatarDavid Sterba <dsterba@suse.cz>
    Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
    13e6c37b
disk-io.c 108 KB