Index: uspace/app/mkminix/mkminix.c
===================================================================
--- uspace/app/mkminix/mkminix.c	(revision bc99ed6a1007a86637a864e57057675d70125231)
+++ uspace/app/mkminix/mkminix.c	(revision f5cbd4f90e1664884979673880d9d4720b9eec22)
@@ -63,4 +63,5 @@
 
 typedef struct mfs_params {
+	int		fs_version;
 	devmap_handle_t	handle;
 	uint16_t	fs_magic;
@@ -75,6 +76,8 @@
 static int	num_of_set_bits(uint32_t n);
 static void	init_superblock(struct mfs_superblock *sb, mfs_params_t *opt);
-static void	init_superblock_v3(struct mfs3_superblock *sb, mfs_params_t *opt);
-static void	init_bitmaps(uint32_t ninodes,	uint32_t nzones, int bsize, mfs_params_t *opt);
+static void	init_superblock_v3(struct mfs3_superblock *sb,
+					mfs_params_t *opt);
+static void	init_bitmaps(uint32_t ninodes,	uint32_t nzones,
+				int bsize, mfs_params_t *opt);
 static void	mark_bmap(uint8_t *bmap, int idx, int v);
 
@@ -123,11 +126,14 @@
 			opt.fs_magic = MFS_MAGIC_V1;
 			opt.block_size = MFS_BLOCKSIZE;
+			opt.fs_version = 1;
 			break;
 		case '2':
 			opt.fs_magic = MFS_MAGIC_V2;
 			opt.block_size = MFS_BLOCKSIZE;
+			opt.fs_version = 2;
 			break;
 		case '3':
 			opt.fs_magic = MFS_MAGIC_V3;
+			opt.fs_version = 3;
 			break;
 		case 'b':
@@ -231,14 +237,11 @@
 {
 	int ino_per_block = 0;
-	int fs_version;
 	aoff64_t inodes;
 
-	if (opt->fs_magic == MFS_MAGIC_V1) {
-		fs_version = 1;
+	if (opt->fs_version == 1) {
 		ino_per_block = V1_INODES_PER_BLOCK;
 		if (opt->fs_longnames)
 			opt->fs_magic = MFS_MAGIC_V1L;
 	} else {
-		fs_version = 2;
 		ino_per_block = V2_INODES_PER_BLOCK;
 		if (opt->fs_longnames)
@@ -272,5 +275,5 @@
 
 	/*Compute zone bitmap size in blocks*/
-	if (fs_version == 1)
+	if (opt->fs_version == 1)
 		sb->s_zbmap_blocks = UPPER(sb->s_nzones, MFS_BLOCKSIZE * 8);
 	else
@@ -364,8 +367,9 @@
 	memset(zbmap_buf, 0xFF, zbmap_nblocks * bsize);
 
-	for (i = 2; i < ninodes; ++i) {
+	for (i = 2; i < ninodes; ++i)
 		mark_bmap(ibmap_buf, i, FREE);
+
+	for (i = 2; i < nzones; ++i)
 		mark_bmap(zbmap_buf, i, FREE);
-	}
 
 	ibmap_nblocks *= bsize / MFS_BLOCKSIZE;
