Since the finobt affects the size of the log reservations, we need to
be able to include its effects in the calculation of the minimum log
size.
(Not really a problem now, but adding rmapbt will give this one some
bite.)
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
int inodelog,
int dirblocklog,
int logversion,
- int log_sunit)
+ int log_sunit,
+ int finobt)
{
xfs_sb_t *sbp;
xfs_mount_t mount;
(dirversion == 2 ? XFS_SB_VERSION_DIRV2BIT : 0) |
(logversion > 1 ? XFS_SB_VERSION_LOGV2BIT : 0) |
XFS_DFL_SB_VERSION_BITS;
+ if (finobt)
+ sbp->sb_features_ro_compat |= XFS_SB_FEAT_RO_COMPAT_FINOBT;
libxfs_mount(&mount, sbp, 0,0,0,0);
maxfsb = xfs_log_calc_minimum_size(&mount);
min_logblocks = max_trans_res(crcs_enabled, dirversion,
sectorlog, blocklog, inodelog, dirblocklog,
- logversion, lsunit);
+ logversion, lsunit, finobt);
ASSERT(min_logblocks);
min_logblocks = MAX(XFS_MIN_LOG_BLOCKS, min_logblocks);
if (!logsize && dblocks >= (1024*1024*1024) >> blocklog)
/* maxtrres.c */
extern int max_trans_res (int crcs_enabled, int dirversion,
int sectorlog, int blocklog, int inodelog, int dirblocklog,
- int logversion, int log_sunit);
+ int logversion, int log_sunit, int finobt);
#endif /* __XFS_MKFS_H__ */