Index: uspace/srv/fs/minixfs/mfs.h
===================================================================
--- uspace/srv/fs/minixfs/mfs.h	(revision efa5fa151d401751b6188ec998da11182b096c92)
+++ uspace/srv/fs/minixfs/mfs.h	(revision 70ac0af6e8bd90b8bea4784699d7f1b0eb3a3232)
@@ -221,8 +221,14 @@
 /*mfs_balloc.c*/
 extern int
-mfs_alloc_bit(struct mfs_instance *inst, uint32_t *idx, bmap_id_t bid);
-
-extern int
-mfs_free_bit(struct mfs_instance *inst, uint32_t idx, bmap_id_t bid);
+mfs_alloc_inode(struct mfs_instance *inst, uint32_t *inum);
+
+extern int
+mfs_free_inode(struct mfs_instance *inst, uint32_t inum);
+
+extern int
+mfs_alloc_zone(struct mfs_instance *inst, uint32_t *zone);
+
+extern int
+mfs_free_zone(struct mfs_instance *inst, uint32_t zone);
 
 #endif
Index: uspace/srv/fs/minixfs/mfs_balloc.c
===================================================================
--- uspace/srv/fs/minixfs/mfs_balloc.c	(revision efa5fa151d401751b6188ec998da11182b096c92)
+++ uspace/srv/fs/minixfs/mfs_balloc.c	(revision 70ac0af6e8bd90b8bea4784699d7f1b0eb3a3232)
@@ -39,5 +39,41 @@
 		      const bool native, unsigned start_bit);
 
-int
+static int
+mfs_free_bit(struct mfs_instance *inst, uint32_t idx, bmap_id_t bid);
+
+static int
+mfs_alloc_bit(struct mfs_instance *inst, uint32_t *idx, bmap_id_t bid);
+
+
+int
+mfs_alloc_inode(struct mfs_instance *inst, uint32_t *inum)
+{
+	return mfs_alloc_bit(inst, inum, BMAP_INODE);
+}
+
+int
+mfs_free_inode(struct mfs_instance *inst, uint32_t inum)
+{
+	return mfs_free_bit(inst, inum, BMAP_INODE);
+}
+
+int
+mfs_alloc_zone(struct mfs_instance *inst, uint32_t *zone)
+{
+	int r = mfs_alloc_bit(inst, zone, BMAP_ZONE);
+
+	*zone += inst->sbi->firstdatazone;
+	return r;
+}
+
+int
+mfs_free_zone(struct mfs_instance *inst, uint32_t zone)
+{
+	zone -= inst->sbi->firstdatazone;
+
+	return mfs_free_bit(inst, zone, BMAP_ZONE);
+}
+
+static int
 mfs_free_bit(struct mfs_instance *inst, uint32_t idx, bmap_id_t bid)
 {
@@ -52,5 +88,4 @@
 
 	if (bid == BMAP_ZONE) {
-		idx -= sbi->firstdatazone;
 		start_block = 2 + sbi->ibmap_blocks;
 		if (idx > sbi->nzones) {
@@ -92,5 +127,5 @@
 }
 
-int
+static int
 mfs_alloc_bit(struct mfs_instance *inst, uint32_t *idx, bmap_id_t bid)
 {
@@ -152,8 +187,4 @@
 
 		*search = *idx;
-
-		if (bid == BMAP_ZONE)
-			*idx += sbi->firstdatazone;
-
 		b->dirty = true;
 		r = block_put(b);
Index: uspace/srv/fs/minixfs/mfs_inode.c
===================================================================
--- uspace/srv/fs/minixfs/mfs_inode.c	(revision efa5fa151d401751b6188ec998da11182b096c92)
+++ uspace/srv/fs/minixfs/mfs_inode.c	(revision 70ac0af6e8bd90b8bea4784699d7f1b0eb3a3232)
@@ -338,5 +338,5 @@
 			continue; /*Sparse block*/
 
-		r = mfs_free_bit(mnode->instance, old_zone, BMAP_ZONE);
+		r = mfs_free_zone(mnode->instance, old_zone);
 		on_error(r, goto exit_error);
 	}
@@ -379,5 +379,5 @@
 		uint32_t dummy;
 
-		r = mfs_alloc_bit(mnode->instance, &new_zone, BMAP_ZONE);
+		r = mfs_alloc_zone(mnode->instance, &new_zone);
 		on_error(r, return r);
 
Index: uspace/srv/fs/minixfs/mfs_ops.c
===================================================================
--- uspace/srv/fs/minixfs/mfs_ops.c	(revision efa5fa151d401751b6188ec998da11182b096c92)
+++ uspace/srv/fs/minixfs/mfs_ops.c	(revision 70ac0af6e8bd90b8bea4784699d7f1b0eb3a3232)
@@ -268,5 +268,5 @@
 
 	/*Alloc a new inode*/
-	r = mfs_alloc_bit(inst, &inum, BMAP_INODE);
+	r = mfs_alloc_inode(inst, &inum);
 	on_error(r, return r);
 
@@ -769,5 +769,5 @@
 		if (block == 0) {
 			/*Writing in a sparse block*/
-			r = mfs_alloc_bit(mnode->instance, &block, BMAP_ZONE);
+			r = mfs_alloc_zone(mnode->instance, &block);
 			on_error(r, goto out_err);
 			flags = BLOCK_FLAGS_NOREAD;
@@ -776,5 +776,5 @@
 		uint32_t dummy;
 
-		r = mfs_alloc_bit(mnode->instance, &block, BMAP_ZONE);
+		r = mfs_alloc_zone(mnode->instance, &block);
 		on_error(r, goto out_err);
 
@@ -849,5 +849,5 @@
 	r = inode_shrink(mnode, mnode->ino_i->i_size);
 	on_error(r, return r);
-	r = mfs_free_bit(mnode->instance, mnode->ino_i->index, BMAP_INODE);
+	r = mfs_free_inode(mnode->instance, mnode->ino_i->index);
 	on_error(r, return r);
 
Index: uspace/srv/fs/minixfs/mfs_rw.c
===================================================================
--- uspace/srv/fs/minixfs/mfs_rw.c	(revision efa5fa151d401751b6188ec998da11182b096c92)
+++ uspace/srv/fs/minixfs/mfs_rw.c	(revision 70ac0af6e8bd90b8bea4784699d7f1b0eb3a3232)
@@ -100,5 +100,5 @@
 
 	if (old_zone > 0)
-		r = mfs_free_bit(mnode->instance, old_zone, BMAP_ZONE);
+		r = mfs_free_zone(mnode->instance, old_zone);
 
 	return r;
@@ -256,5 +256,5 @@
 		/*free the single indirect zone*/
 		if (ino_i->i_izone[0]) {
-			r = mfs_free_bit(inst, ino_i->i_izone[0], BMAP_ZONE);
+			r = mfs_free_zone(inst, ino_i->i_izone[0]);
 			on_error(r, return r);
 
@@ -286,10 +286,10 @@
 			continue;
 
-		r = mfs_free_bit(inst, dbl_zone[i], BMAP_ZONE);
+		r = mfs_free_zone(inst, dbl_zone[i]);
 		on_error(r, return r);
 	}
 
 	if (fzone_to_free == 0) {
-		r = mfs_free_bit(inst, ino_i->i_izone[1], BMAP_ZONE);
+		r = mfs_free_zone(inst, ino_i->i_izone[1]);
 		ino_i->i_izone[1] = 0;
 		ino_i->dirty = true;
@@ -321,5 +321,5 @@
 	int r;
 
-	r = mfs_alloc_bit(inst, zone, BMAP_ZONE);
+	r = mfs_alloc_zone(inst, zone);
 	on_error(r, return r);
 
