mke2fs: add support for cluster size in mke2fs.conf

Add support for specifying the cluster size in mke2fs.conf

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
bitmap-optimize
Theodore Ts'o 2011-06-14 14:30:22 -04:00
parent 4c2b28ab67
commit 2d34a25f81
2 changed files with 17 additions and 9 deletions

View File

@ -1177,7 +1177,7 @@ out:
static void PRS(int argc, char *argv[]) static void PRS(int argc, char *argv[])
{ {
int b, c; int b, c;
int size; int cluster_size = 0;
char *tmp, **cpp; char *tmp, **cpp;
int blocksize = 0; int blocksize = 0;
int inode_ratio = 0; int inode_ratio = 0;
@ -1305,16 +1305,14 @@ profile_error:
cflag++; cflag++;
break; break;
case 'C': case 'C':
size = strtoul(optarg, &tmp, 0); cluster_size = strtoul(optarg, &tmp, 0);
if (size < EXT2_MIN_CLUSTER_SIZE || if (cluster_size < EXT2_MIN_CLUSTER_SIZE ||
size > EXT2_MAX_CLUSTER_SIZE || *tmp) { cluster_size > EXT2_MAX_CLUSTER_SIZE || *tmp) {
com_err(program_name, 0, com_err(program_name, 0,
_("invalid fragment size - %s"), _("invalid fragment size - %s"),
optarg); optarg);
exit(1); exit(1);
} }
fs_param.s_log_cluster_size =
int_log2(size >> EXT2_MIN_CLUSTER_LOG_SIZE);
break; break;
case 'g': case 'g':
fs_param.s_blocks_per_group = strtoul(optarg, &tmp, 0); fs_param.s_blocks_per_group = strtoul(optarg, &tmp, 0);
@ -1801,9 +1799,12 @@ profile_error:
fs_param.s_log_block_size = fs_param.s_log_block_size =
int_log2(blocksize >> EXT2_MIN_BLOCK_LOG_SIZE); int_log2(blocksize >> EXT2_MIN_BLOCK_LOG_SIZE);
if (fs_param.s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_BIGALLOC) { if (fs_param.s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_BIGALLOC) {
if (fs_param.s_log_cluster_size == 0) if (!cluster_size)
fs_param.s_log_cluster_size = cluster_size = get_int_from_profile(fs_types,
fs_param.s_log_block_size + 4; "cluster_size",
blocksize*4);
fs_param.s_log_cluster_size =
int_log2(cluster_size >> EXT2_MIN_CLUSTER_LOG_SIZE);
} else } else
fs_param.s_log_cluster_size = fs_param.s_log_block_size; fs_param.s_log_cluster_size = fs_param.s_log_block_size;

View File

@ -395,6 +395,13 @@ on a per-filesystem type basis.
This relation is a boolean which specifies whether the This relation is a boolean which specifies whether the
.BR mke2fs (8) .BR mke2fs (8)
should attempt to discard device prior to filesystem creation. should attempt to discard device prior to filesystem creation.
.TP
.I cluster_size
This relation specifies the default cluster size if the bigalloc file
system feature is enabled. It can be overridden via the
.B \-C
command line option to
.BR mke2fs (8)
.SH THE [devices] STANZA .SH THE [devices] STANZA
Each tag in the Each tag in the
.I [devices] .I [devices]