• Josef Bacik's avatar
    btrfs: move btrfs_truncate_block out of trans handle · ddfae63c
    Josef Bacik authored
    Since we do a delalloc reserve in btrfs_truncate_block we can deadlock
    with freeze.  If somebody else is trying to allocate metadata for this
    inode and it gets stuck in start_delalloc_inodes because of freeze we
    will deadlock.  Be safe and move this outside of a trans handle.  This
    also has a side-effect of making sure that we're not leaving stale data
    behind in the other_encoding or encryption case.  Not an issue now since
    nobody uses it, but it would be a problem in the future.
    Signed-off-by: default avatarJosef Bacik <jbacik@fb.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    ddfae63c
inode.c 291 KB