• Josef Bacik's avatar
    btrfs: do not call close_fs_devices in btrfs_rm_device · 8b41393f
    Josef Bacik authored
    There's a subtle case where if we're removing the seed device from a
    file system we need to free its private copy of the fs_devices.  However
    we do not need to call close_fs_devices(), because at this point there
    are no devices left to close as we've closed the last one.  The only
    thing that close_fs_devices() does is decrement ->opened, which should
    be 1.  We want to avoid calling close_fs_devices() here because it has a
    lockdep_assert_held(&uuid_mutex), and we are going to stop holding the
    uuid_mutex in this path.
    
    So simply decrement the  ->opened counter like we should, and then clean
    up like normal.  Also add a comment explaining what we're doing here as
    I initially removed this code erroneously.
    Reviewed-by: default avatarAnand Jain <anand.jain@oracle.com>
    Signed-off-by: default avatarJosef Bacik <josef@toxicpanda.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    8b41393f
volumes.c 220 KB