static void
calc_concurrency_ag_geometry(
struct mkfs_params *cfg,
- struct cli_params *cli,
- struct libxfs_init *xi)
+ struct cli_params *cli)
{
uint64_t try_agsize;
uint64_t def_agsize;
static void
calculate_initial_ag_geometry(
struct mkfs_params *cfg,
- struct cli_params *cli,
- struct libxfs_init *xi)
+ struct cli_params *cli)
{
if (cli->data_concurrency > 0) {
- calc_concurrency_ag_geometry(cfg, cli, xi);
+ calc_concurrency_ag_geometry(cfg, cli);
} else if (cli->agsize) { /* User-specified AG size */
cfg->agsize = getnum(cli->agsize, &dopts, D_AGSIZE);
cfg->agcount = cli->agcount;
cfg->agsize = cfg->dblocks / cfg->agcount +
(cfg->dblocks % cfg->agcount != 0);
- } else if (cli->data_concurrency == -1 && ddev_is_solidstate(xi)) {
- calc_concurrency_ag_geometry(cfg, cli, xi);
+ } else if (cli->data_concurrency == -1 &&
+ ddev_is_solidstate(cli->xi)) {
+ calc_concurrency_ag_geometry(cfg, cli);
} else {
calc_default_ag_geometry(cfg->blocklog, cfg->dblocks,
cfg->dsunit, &cfg->agsize,
static void
calc_concurrency_rtgroup_geometry(
struct mkfs_params *cfg,
- struct cli_params *cli,
- struct libxfs_init *xi)
+ struct cli_params *cli)
{
uint64_t try_rgsize;
uint64_t def_rgsize;
static void
calculate_rtgroup_geometry(
struct mkfs_params *cfg,
- struct cli_params *cli,
- struct libxfs_init *xi)
+ struct cli_params *cli)
{
if (!cli->sb_feat.metadir) {
cfg->rgcount = 0;
cfg->rgsize = cfg->rtblocks;
cfg->rgcount = 0;
} else if (cli->rtvol_concurrency > 0 ||
- (cli->rtvol_concurrency == -1 && rtdev_is_solidstate(xi))) {
- calc_concurrency_rtgroup_geometry(cfg, cli, xi);
+ (cli->rtvol_concurrency == -1 &&
+ rtdev_is_solidstate(cli->xi))) {
+ calc_concurrency_rtgroup_geometry(cfg, cli);
} else if (is_power_of_2(cfg->rtextblocks)) {
cfg->rgsize = calc_rgsize_extsize_power(cfg);
cfg->rgcount = cfg->rtblocks / cfg->rgsize +
adjust_nr_zones(
struct mkfs_params *cfg,
struct cli_params *cli,
- struct libxfs_init *xi,
struct zone_topology *zt)
{
uint64_t new_rtblocks, slack;
if (zt->rt.nr_zones)
max_zones = zt->rt.nr_zones;
else
- max_zones = DTOBT(xi->rt.size, cfg->blocklog) / cfg->rgsize;
+ max_zones = DTOBT(cli->xi->rt.size, cfg->blocklog) /
+ cfg->rgsize;
if (!cli->rgcount)
cfg->rgcount += XFS_RESERVED_ZONES;
calculate_zone_geometry(
struct mkfs_params *cfg,
struct cli_params *cli,
- struct libxfs_init *xi,
struct zone_topology *zt)
{
if (cfg->rtblocks == 0) {
}
if (cli->rtsize || cli->rgcount)
- adjust_nr_zones(cfg, cli, xi, zt);
+ adjust_nr_zones(cfg, cli, zt);
if (cfg->rgcount < XFS_MIN_ZONES) {
fprintf(stderr,
calc_concurrency_logblocks(
struct mkfs_params *cfg,
struct cli_params *cli,
- struct libxfs_init *xi,
unsigned int max_tx_bytes)
{
uint64_t log_bytes;
unsigned int new_logblocks;
if (cli->log_concurrency < 0) {
- if (!ddev_is_solidstate(xi))
+ if (!ddev_is_solidstate(cli->xi))
goto out;
cli->log_concurrency = nr_cpus();
calculate_log_size(
struct mkfs_params *cfg,
struct cli_params *cli,
- struct libxfs_init *xi,
struct xfs_mount *mp)
{
struct xfs_sb *sbp = &mp->m_sb;
if (cfg->lsunit) {
uint64_t max_logblocks;
- max_logblocks = min(DTOBT(xi->log.size, cfg->blocklog),
- XFS_MAX_LOG_BLOCKS);
+ max_logblocks = min(XFS_MAX_LOG_BLOCKS,
+ DTOBT(cli->xi->log.size, cfg->blocklog));
align_log_size(cfg, cfg->lsunit, max_logblocks);
}
if (cli->log_concurrency != 0)
cfg->logblocks = calc_concurrency_logblocks(cfg, cli,
- xi, max_tx_bytes);
+ max_tx_bytes);
/* But don't go below a reasonable size */
cfg->logblocks = max(cfg->logblocks,
* dependent on device sizes. Once calculated, make sure everything
* aligns to device geometry correctly.
*/
- calculate_initial_ag_geometry(&cfg, &cli, &xi);
+ calculate_initial_ag_geometry(&cfg, &cli);
align_ag_geometry(&cfg, &ft);
if (cfg.sb_feat.zoned)
- calculate_zone_geometry(&cfg, &cli, &xi, &zt);
+ calculate_zone_geometry(&cfg, &cli, &zt);
else
- calculate_rtgroup_geometry(&cfg, &cli, &xi);
+ calculate_rtgroup_geometry(&cfg, &cli);
calculate_imaxpct(&cfg, &cli);
* With the mount set up, we can finally calculate the log size
* constraints and do default size calculations and final validation
*/
- calculate_log_size(&cfg, &cli, &xi, mp);
+ calculate_log_size(&cfg, &cli, mp);
finish_superblock_setup(&cfg, mp, sbp);