Index: uspace/app/mkminix/mkminix.c
===================================================================
--- uspace/app/mkminix/mkminix.c	(revision e91b898cb6d5f9aa5521b0e30841eab1fa05a61d)
+++ uspace/app/mkminix/mkminix.c	(revision 99f043e491022ac09b247647104a7b6e99ef8971)
@@ -446,4 +446,7 @@
 {
 	aoff64_t inodes;
+	unsigned long ind;
+	unsigned long ind2;
+	unsigned long zones;
 	int rc;
 
@@ -457,10 +460,24 @@
 		sb->n_zones = sb->dev_nblocks > UINT16_MAX ? 
 				UINT16_MAX : sb->dev_nblocks;
+		ind = MFS_BLOCKSIZE / sizeof(uint16_t);
+		ind2 = ind * ind;
+		sb->max_file_size = (V1_NR_DIRECT_ZONES + ind + ind2) * MFS_BLOCKSIZE;
 	} else {
 		/*Valid for MFS V2/V3*/
+		size_t ptrsize;
+		if (sb->fs_version == 2)
+			ptrsize = sizeof(uint16_t);
+		else
+			ptrsize = sizeof(uint32_t);
+		ind = sb->block_size / ptrsize;
+		ind2 = ind * ind;
+		zones = V2_NR_DIRECT_ZONES + ind + ind2;
+		sb->max_file_size = zones * sb->block_size;
 		sb->n_zones = sb->dev_nblocks > UINT32_MAX ?
 				UINT32_MAX : sb->dev_nblocks;
 
 		if (sb->fs_version == 3) {
+			if(INT32_MAX / sb->block_size < zones)
+				sb->max_file_size = INT32_MAX;
 			sb->ino_per_block = V3_INODES_PER_BLOCK(sb->block_size);
 			sb->n_zones /= (sb->block_size / MFS_MIN_BLOCKSIZE);
@@ -512,4 +529,5 @@
 	printf(NAME ": zone bitmap blocks = %ld\n", sb->zbmap_blocks);
 	printf(NAME ": first data zone = %d\n", (uint32_t) sb->first_data_zone);
+	printf(NAME ": max file size = %u\n", sb->max_file_size);
 	printf(NAME ": long fnames = %s\n", sb->longnames ? "Yes" : "No");
 
@@ -545,5 +563,5 @@
 	sb->s_first_data_zone = (uint16_t) sbi->first_data_zone;
 	sb->s_log2_zone_size = sbi->log2_zone_size;
-	sb->s_max_file_size = UINT32_MAX;
+	sb->s_max_file_size = sbi->max_file_size;
 	sb->s_magic = sbi->magic;
 	sb->s_state = MFS_VALID_FS;
@@ -577,5 +595,5 @@
 	sb->s_first_data_zone = (uint16_t) sbi->first_data_zone;
 	sb->s_log2_zone_size = sbi->log2_zone_size;
-	sb->s_max_file_size = UINT32_MAX;
+	sb->s_max_file_size = sbi->max_file_size;
 	sb->s_magic = sbi->magic;
 	sb->s_block_size = sbi->block_size;
