• Josef Bacik's avatar
    Btrfs: simplify unlink reservations · d52be818
    Josef Bacik authored
    Dave pointed out a problem where if you filled up a file system as much as
    possible you couldn't remove any files.  The whole unlink reservation thing is
    convoluted because it tries to guess if it's going to add space to unlink
    something or not, and has all these odd uncommented cases where it simply does
    not try.  So to fix this I've added a way to conditionally steal from the global
    reserve if we can't make our normal reservation.  If we have more than half the
    space in the global reserve free we will go ahead and steal from the global
    reserve.  With this patch Dave's reproducer now works and I can rm all the files
    on the file system.  Thanks,
    Reported-by: default avatarDavid Sterba <dsterba@suse.cz>
    Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
    d52be818
extent-tree.c 229 KB