• Filipe Manana's avatar
    btrfs: assert tree lock is held when removing free space entries · 7e5ba559
    Filipe Manana authored
    Removing a free space entry from an in memory space cache requires having
    the corresponding btrfs_free_space_ctl's 'tree_lock' held. We have several
    code paths that remove an entry, so add assertions where appropriate to
    verify we are holding the lock, as the lock is acquired by some other
    function up in the call chain, which makes it easy to miss in the future.
    
    Note: for this to work we need to lock the local btrfs_free_space_ctl at
    load_free_space_cache(), which was not being done because it's local,
    declared on the stack, so no other task has access to it.
    Signed-off-by: default avatarFilipe Manana <fdmanana@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    7e5ba559
free-space-cache.c 115 KB