Index: uspace/srv/fs/minixfs/mfs_balloc.c
===================================================================
--- uspace/srv/fs/minixfs/mfs_balloc.c	(revision a791a96cba9c27b839edf8d4af125ac66faad392)
+++ uspace/srv/fs/minixfs/mfs_balloc.c	(revision 8829e33a5b26f076910d45689b9e27c8fe2d7033)
@@ -81,8 +81,9 @@
 	bitchunk_t *ptr = b->data;
 	bitchunk_t chunk;
-
-	chunk = conv32(sbi->native, ptr[idx / 32]);
-	chunk &= ~(1 << (idx % 32));
-	ptr[idx / 32] = conv32(sbi->native, chunk);
+	const size_t chunk_bits = sizeof(bitchunk_t) * 8;
+
+	chunk = conv32(sbi->native, ptr[idx / chunk_bits]);
+	chunk &= ~(1 << (idx % chunk_bits));
+	ptr[idx / chunk_bits] = conv32(sbi->native, chunk);
 	b->dirty = true;
 	r = EOK;
@@ -140,6 +141,6 @@
 		}
 
-		/*Free bit found, compute real index*/
-		*idx = (freebit + sbi->block_size * 8 * i);
+		/*Free bit found in this block, compute the real index*/
+		*idx = (freebit + bits_per_block * i);
 		if (*idx > limit) {
 			/*Index is beyond the limit, it is invalid*/
@@ -148,5 +149,5 @@
 		}
 
-		*search = i * bits_per_block + *idx;
+		*search = *idx;
 		b->dirty = true;
 		block_put(b);
@@ -177,4 +178,5 @@
 	unsigned i, j;
 	bitchunk_t chunk;
+	const size_t chunk_bits = sizeof(bitchunk_t) * 8;
 
 	for (i = start_bit; i < bsize / sizeof(uint32_t); ++i) {
@@ -186,7 +188,7 @@
 		chunk = conv32(native, b[i]);
 
-		for (j = 0; j < 32; ++j) {
+		for (j = 0; j < chunk_bits; ++j) {
 			if (chunk & (1 << j)) {
-				r = i * 32 + j;
+				r = i * chunk_bits + j;
 				chunk |= 1 << j;
 				b[i] = conv32(native, chunk);
