 +			bucket = bucket->next;
 +		}
 +	}
-+
+ 
 +	return count;
 +}
  

 	if(optind < (argc - 1))
 		error_msg_and_die("too many arguments");
 	if(optind == (argc - 1))
@@ -2201,12 +2411,54 @@
 	}
 	else
 	{
-		if(nbblocks == -1)
-			error_msg_and_die("filesystem size unspecified");
 		if(nbinodes == -1)
 			nbinodes = nbblocks * BLOCKSIZE / rndup(BYTES_PER_INODE, BLOCKSIZE);
 		if(nbresrvd == -1)
 			nbresrvd = nbblocks * RESERVED_INODES;
+
+		stats.ninodes = 0;
+		stats.nblocks = 0;
+		for(i = 0; i < didx; i++)

+			printf("Number of inodes too low, increasing to %d\n",tmp_nbinodes);
+			nbinodes = tmp_nbinodes;
+		}
 		if(nbblocks == -1)
 			error_msg_and_die("filesystem size unspecified");
 		if(nbinodes == -1)
