• Josef Bacik's avatar
    Btrfs: fix num_workers_starting bug and other bugs in async thread · 0dc3b84a
    Josef Bacik authored
    Al pointed out we have some random problems with the way we account for
    num_workers_starting in the async thread stuff.  First of all we need to make
    sure to decrement num_workers_starting if we fail to start the worker, so make
    __btrfs_start_workers do this.  Also fix __btrfs_start_workers so that it
    doesn't call btrfs_stop_workers(), there is no point in stopping everybody if we
    failed to create a worker.  Also check_pending_worker_creates needs to call
    __btrfs_start_work in it's work function since it already increments
    num_workers_starting.
    
    People only start one worker at a time, so get rid of the num_workers argument
    everywhere, and make btrfs_queue_worker a void since it will always succeed.
    Thanks,
    Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
    0dc3b84a
disk-io.c 96.2 KB