• Brian Foster's avatar
    xfs: eliminate duplicate icreate tx reservation functions · c017cb5d
    Brian Foster authored
    The create transaction reservation calculation has two different
    branches of code depending on whether the filesystem is a v5 format
    fs or older. Each branch considers the max reservation between the
    allocation case (new chunk allocation + record insert) and the
    modify case (chunk exists, record modification) of inode allocation.
    
    The modify case is the same for both superblock versions with the
    exception of the finobt. The finobt helper checks the feature bit,
    however, and so the modify case already shares the same code.
    
    Now that inode chunk allocation has been refactored into a helper
    that checks the superblock version to calculate the appropriate
    reservation for the create transaction, the only remaining
    difference between the create and icreate branches is the call to
    the finobt helper. As noted above, the finobt helper is a no-op when
    the feature is not enabled. Therefore, these branches are
    effectively duplicate and can be condensed.
    
    Remove the xfs_calc_create_*() branch of functions and update the
    various callers to use the xfs_calc_icreate_*() variant. The latter
    creates the same reservation size for v4 create transactions as the
    removed branch. As such, this patch does not result in transaction
    reservation changes.
    Signed-off-by: default avatarBrian Foster <bfoster@redhat.com>
    Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
    Reviewed-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
    c017cb5d
xfs_trans_resv.c 29.2 KB