aboutsummaryrefslogtreecommitdiffstats
path: root/fs/direct-io.c
diff options
context:
space:
mode:
authorBrian Foster <bfoster@redhat.com>2018-01-08 10:41:38 -0800
committerDarrick J. Wong <darrick.wong@oracle.com>2018-01-08 10:41:38 -0800
commitc017cb5ddfd6326032570d5eba83308c8a9c13a9 (patch)
treebf93b1cbbe7ac44e6545e93311a0eed84db24085 /fs/direct-io.c
parentxfs: refactor inode chunk alloc/free tx reservation (diff)
downloadlinux-dev-c017cb5ddfd6326032570d5eba83308c8a9c13a9.tar.xz
linux-dev-c017cb5ddfd6326032570d5eba83308c8a9c13a9.zip
xfs: eliminate duplicate icreate tx reservation functions
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: Brian Foster <bfoster@redhat.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Diffstat (limited to 'fs/direct-io.c')
0 files changed, 0 insertions, 0 deletions