• Darrick J. Wong's avatar
    xfs: queue inactivation immediately when free space is tight · 7d6f07d2
    Darrick J. Wong authored
    Now that we have made the inactivation of unlinked inodes a background
    task to increase the throughput of file deletions, we need to be a
    little more careful about how long of a delay we can tolerate.
    
    On a mostly empty filesystem, the risk of the allocator making poor
    decisions due to fragmentation of the free space on account a lengthy
    delay in background updates is minimal because there's plenty of space.
    However, if free space is tight, we want to deallocate unlinked inodes
    as quickly as possible to avoid fallocate ENOSPC and to give the
    allocator the best shot at optimal allocations for new writes.
    
    Therefore, queue the percpu worker immediately if the filesystem is more
    than 95% full.  This follows the same principle that XFS becomes less
    aggressive about speculative allocations and lazy cleanup (and more
    precise about accounting) when nearing full.
    Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
    7d6f07d2
xfs_mount.c 33.3 KB