• Nikolay Borisov's avatar
    btrfs: Stop using call_rcu for device freeing · 8e75fd89
    Nikolay Borisov authored
    btrfs_device structs are freed from RCU context since device iteration
    is protected by RCU. Currently this is achieved by using call_rcu since
    no blocking functions are called within btrfs_free_device. Future
    refactoring of pending/pinned chunks will require calling sleeping
    functions.
    
    This patch is in preparation for these changes by simply switching from
    RCU callbacks to explicit calls of synchronize_rcu and calling
    btrfs_free_device directly. This is functionally equivalent, making sure
    that there are no readers at that time.
    Signed-off-by: default avatarNikolay Borisov <nborisov@suse.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    8e75fd89
volumes.c 207 KB