Whamcloud - gitweb
Enable FLEX_BG feature support
[tools/e2fsprogs.git] / misc / mke2fs.c
index 0292a64..1bed5eb 100644 (file)
@@ -100,7 +100,7 @@ static void usage(void)
        "\t[-N number-of-inodes] [-m reserved-blocks-percentage] "
        "[-o creator-os]\n\t[-g blocks-per-group] [-L volume-label] "
        "[-M last-mounted-directory]\n\t[-O feature[,...]] "
-       "[-r fs-revision] [-R options] [-qvSV]\n\tdevice [blocks-count]\n"),
+       "[-r fs-revision] [-E extended-option[,...]] [-qvSV]\n\tdevice [blocks-count]\n"),
                program_name);
        exit(1);
 }
@@ -693,8 +693,7 @@ static void show_stats(ext2_filsys fs)
        if (s->s_reserved_gdt_blocks)
                printf(_("Maximum filesystem blocks=%lu\n"),
                       (s->s_reserved_gdt_blocks + fs->desc_blocks) *
-                      (fs->blocksize / sizeof(struct ext2_group_desc)) *
-                      s->s_blocks_per_group);
+                      EXT2_DESC_PER_BLOCK(s) * s->s_blocks_per_group);
        if (fs->group_desc_count > 1)
                printf(_("%u block groups\n"), fs->group_desc_count);
        else
@@ -826,7 +825,7 @@ static void parse_extended_opts(struct ext2_super_block *param,
                        bpg = param->s_blocks_per_group;
                        if (!bpg)
                                bpg = blocksize * 8;
-                       gdpb = blocksize / sizeof(struct ext2_group_desc);
+                       gdpb = EXT2_DESC_PER_BLOCK(param);
                        group_desc_count = 
                                ext2fs_div_ceil(param->s_blocks_count, bpg);
                        desc_blocks = (group_desc_count +
@@ -873,7 +872,8 @@ static __u32 ok_features[3] = {
                EXT2_FEATURE_COMPAT_LAZY_BG,    /* Compat */
        EXT2_FEATURE_INCOMPAT_FILETYPE|         /* Incompat */
                EXT3_FEATURE_INCOMPAT_JOURNAL_DEV|
-               EXT2_FEATURE_INCOMPAT_META_BG,
+               EXT2_FEATURE_INCOMPAT_META_BG|
+               EXT4_FEATURE_INCOMPAT_FLEX_BG,
        EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER     /* R/O compat */
 };
 
@@ -900,6 +900,9 @@ static void edit_feature(const char *str, __u32 *compat_array)
        }
 }
 
+extern const char *mke2fs_default_profile;
+static const char *default_files[] = { "<default>", 0 };
+
 static void PRS(int argc, char *argv[])
 {
        int             b, c;
@@ -958,7 +961,11 @@ static void PRS(int argc, char *argv[])
        if ((tmp = getenv("MKE2FS_CONFIG")) != NULL)
                config_fn[0] = tmp;
        profile_set_syntax_err_cb(syntax_err_report);
-       profile_init(config_fn, &profile);
+       retval = profile_init(config_fn, &profile);
+       if (retval == ENOENT) {
+               profile_init(default_files, &profile);
+               profile_set_default(profile, mke2fs_default_profile);
+       }
        
        setbuf(stdout, NULL);
        setbuf(stderr, NULL);
@@ -1519,7 +1526,7 @@ int main (int argc, char *argv[])
        errcode_t       retval = 0;
        ext2_filsys     fs;
        badblocks_list  bb_list = 0;
-       int             journal_blocks;
+       unsigned int    journal_blocks;
        unsigned int    i;
        int             val;
        io_manager      io_ptr;
@@ -1727,7 +1734,7 @@ int main (int argc, char *argv[])
                        goto no_journal;
                }
                if (!quiet) {
-                       printf(_("Creating journal (%d blocks): "),
+                       printf(_("Creating journal (%u blocks): "),
                               journal_blocks);
                        fflush(stdout);
                }