• Josef Bacik's avatar
    btrfs: load the free space cache inode extents from commit root · 4d7240f0
    Josef Bacik authored
    Historically we've allowed recursive locking specifically for the free
    space inode.  This is because we are only doing reads and know that it's
    safe.  However we don't actually need this feature, we can get away with
    reading the commit root for the extents.  In fact if we want to allow
    asynchronous loading of the free space cache we have to use the commit
    root, otherwise we will deadlock.
    
    Switch to using the commit root for the file extents.  These are only
    read at load time, and are replaced as soon as we start writing the
    cache out to disk.  The cache is never read again, so this is
    legitimate.  This matches what we do for the inode itself, as we read
    that from the commit root as well.
    Reviewed-by: default avatarFilipe Manana <fdmanana@suse.com>
    Signed-off-by: default avatarJosef Bacik <josef@toxicpanda.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    4d7240f0
inode.c 284 KB