• Josef Bacik's avatar
    Btrfs: use FLUSH_LIMIT for relocation in reserve_metadata_bytes · 8ca17f0f
    Josef Bacik authored
    We used to allow you to set FLUSH_ALL and then just wouldn't do things like
    commit transactions or wait on ordered extents if we noticed you were in a
    transaction.  However now that all the flushing for FLUSH_ALL is asynchronous
    we've lost the ability to tell, and we could end up deadlocking.  So instead use
    FLUSH_LIMIT in reserve_metadata_bytes in relocation and then return -EAGAIN if
    we error out to preserve the previous behavior.  I've also added an ASSERT() to
    catch anybody else who tries to do this.  Thanks,
    Signed-off-by: default avatarJosef Bacik <jbacik@fb.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    8ca17f0f
relocation.c 110 KB