[PATCH 6/5] mkfs: factor finobt changes into min log size when formatting
Darrick J. Wong
darrick.wong at oracle.com
Tue Jan 26 22:44:48 CST 2016
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 at oracle.com>
---
mkfs/maxtrres.c | 5 ++++-
mkfs/xfs_mkfs.c | 2 +-
mkfs/xfs_mkfs.h | 2 +-
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/mkfs/maxtrres.c b/mkfs/maxtrres.c
index e1d5ee9..b97d020 100644
--- a/mkfs/maxtrres.c
+++ b/mkfs/maxtrres.c
@@ -36,7 +36,8 @@ max_trans_res(
int inodelog,
int dirblocklog,
int logversion,
- int log_sunit)
+ int log_sunit,
+ int finobt)
{
xfs_sb_t *sbp;
xfs_mount_t mount;
@@ -68,6 +69,8 @@ max_trans_res(
(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);
diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c
index 700d12c..4c3a802 100644
--- a/mkfs/xfs_mkfs.c
+++ b/mkfs/xfs_mkfs.c
@@ -2406,7 +2406,7 @@ an AG size that is one stripe unit smaller, for example %llu.\n"),
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)
diff --git a/mkfs/xfs_mkfs.h b/mkfs/xfs_mkfs.h
index 9df5f37..128068e 100644
--- a/mkfs/xfs_mkfs.h
+++ b/mkfs/xfs_mkfs.h
@@ -84,6 +84,6 @@ extern void res_failed (int err);
/* 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__ */
More information about the xfs
mailing list