• Christoph Hellwig's avatar
    xfs: adjust allocation length in xfs_alloc_space_available · 54fee133
    Christoph Hellwig authored
    We must decide in xfs_alloc_fix_freelist if we can perform an
    allocation from a given AG is possible or not based on the available
    space, and should not fail the allocation past that point on a
    healthy file system.
    
    But currently we have two additional places that second-guess
    xfs_alloc_fix_freelist: xfs_alloc_ag_vextent tries to adjust the
    maxlen parameter to remove the reservation before doing the
    allocation (but ignores the various minium freespace requirements),
    and xfs_alloc_fix_minleft tries to fix up the allocated length
    after we've found an extent, but ignores the reservations and also
    doesn't take the AGFL into account (and thus fails allocations
    for not matching minlen in some cases).
    
    Remove all these later fixups and just correct the maxlen argument
    inside xfs_alloc_fix_freelist once we have the AGF buffer locked.
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
    Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
    54fee133
xfs_alloc.h 7.97 KB