Index: uspace/srv/fs/minixfs/mfs_balloc.c
===================================================================
--- uspace/srv/fs/minixfs/mfs_balloc.c	(revision 6fcc03a980b188a0f042f1a9c25a1c383067aa5e)
+++ uspace/srv/fs/minixfs/mfs_balloc.c	(revision a900fb14bb77ea53780d5c973df7a3648bd592f1)
@@ -142,5 +142,7 @@
 
 		/*Free bit found in this block, compute the real index*/
-		*idx = (freebit + bits_per_block * i);
+		*idx = freebit + bits_per_block * i;
+		*idx += (bid == BMAP_INODE);
+		mfsdebug("alloc index %d %d\n", (int) *idx, i);
 		if (*idx > limit) {
 			/*Index is beyond the limit, it is invalid*/
@@ -180,5 +182,6 @@
 	const size_t chunk_bits = sizeof(bitchunk_t) * 8;
 
-	for (i = start_bit; i < bsize / sizeof(uint32_t); ++i) {
+	for (i = start_bit / sizeof(uint32_t);
+				i < bsize / sizeof(uint32_t); ++i) {
 		if (!(~b[i])) {
 			/*No free bit in this chunk*/
@@ -189,5 +192,6 @@
 
 		for (j = 0; j < chunk_bits; ++j) {
-			if (chunk & (1 << j)) {
+			if (!(chunk & (1 << j))) {
+				mfsdebug("i = %d j = %d\n", i, j);
 				r = i * chunk_bits + j;
 				chunk |= 1 << j;
