+ if (!EXT2_HAS_INCOMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_INCOMPAT_64BIT)) {
+ /* Take 16T down to 2^32-1 blocks */
+ if (new_size == (1ULL << 32))
+ new_size--;
+ else if (new_size > (1ULL << 32)) {
+ com_err(program_name, 0, "%s",
+ _("New size too large to be "
+ "expressed in 32 bits\n"));
+ exit(1);
+ }
+ }
+
+ if (!force && new_size < min_size) {
+ com_err(program_name, 0,
+ _("New size smaller than minimum (%llu)\n"), min_size);
+ exit(1);
+ }
+ if (use_stride >= 0) {
+ if (use_stride >= (int) fs->super->s_blocks_per_group) {
+ com_err(program_name, 0, "%s",
+ _("Invalid stride length"));
+ exit(1);
+ }
+ fs->stride = fs->super->s_raid_stride = use_stride;
+ ext2fs_mark_super_dirty(fs);
+ } else
+ determine_fs_stride(fs);
+