Index: uspace/srv/fs/minixfs/mfs.h
===================================================================
--- uspace/srv/fs/minixfs/mfs.h	(revision 03bc76a7fb314e6f8a8a718e724a331923b447b8)
+++ uspace/srv/fs/minixfs/mfs.h	(revision c699b0c822664d5453a8b361e77a832b578b588a)
@@ -58,8 +58,4 @@
 #endif
 
-#define on_error(r, inst) do {	\
-				if (r != EOK) inst;	\
-			}while(0)
-
 typedef uint32_t bitchunk_t;
 
Index: uspace/srv/fs/minixfs/mfs_balloc.c
===================================================================
--- uspace/srv/fs/minixfs/mfs_balloc.c	(revision 03bc76a7fb314e6f8a8a718e724a331923b447b8)
+++ uspace/srv/fs/minixfs/mfs_balloc.c	(revision c699b0c822664d5453a8b361e77a832b578b588a)
@@ -151,5 +151,6 @@
 
 	r = block_get(&b, inst->service_id, block, BLOCK_FLAGS_NONE);
-	on_error(r, goto out_err);
+	if (r != EOK)
+		goto out_err;
 
 	/*Compute the bit index in the block*/
@@ -219,5 +220,6 @@
 			      BLOCK_FLAGS_NONE);
 
-		on_error(r, goto out);
+		if (r != EOK)
+			goto out;
 
 		unsigned tmp = *search % bits_per_block;
@@ -228,5 +230,6 @@
 			/*No free bit in this block*/
 			r = block_put(b);
-			on_error(r, goto out);
+			if (r != EOK)
+				goto out;
 			continue;
 		}
@@ -237,5 +240,6 @@
 			/*Index is beyond the limit, it is invalid*/
 			r = block_put(b);
-			on_error(r, goto out);
+			if (r != EOK)
+				goto out;
 			break;
 		}
Index: uspace/srv/fs/minixfs/mfs_dentry.c
===================================================================
--- uspace/srv/fs/minixfs/mfs_dentry.c	(revision 03bc76a7fb314e6f8a8a718e724a331923b447b8)
+++ uspace/srv/fs/minixfs/mfs_dentry.c	(revision c699b0c822664d5453a8b361e77a832b578b588a)
@@ -53,5 +53,6 @@
 
 	int r = read_map(&block, mnode, index * sbi->dirsize);
-	on_error(r, goto out_err);
+	if (r != EOK)
+		goto out_err;
 
 	if (block == 0) {
@@ -62,5 +63,6 @@
 
 	r = block_get(&b, inst->service_id, block, BLOCK_FLAGS_NONE);
-	on_error(r, goto out_err);
+	if (r != EOK)
+		goto out_err;
 
 	unsigned dentries_per_zone = sbi->block_size / sbi->dirsize;
@@ -113,8 +115,10 @@
 
 	r = read_map(&block, mnode, d_off_bytes);
-	on_error(r, goto out);
+	if (r != EOK)
+		goto out;
 
 	r = block_get(&b, mnode->instance->service_id, block, BLOCK_FLAGS_NONE);
-	on_error(r, goto out);
+	if (r != EOK)
+		goto out;
 
 	const size_t name_len = sbi->max_name_len;
@@ -166,5 +170,6 @@
 	for (i = 0; i < mnode->ino_i->i_size / sbi->dirsize ; ++i) {
 		r = read_dentry(mnode, &d_info, i);
-		on_error(r, return r);
+		if (r != EOK)
+			return r;
 
 		const size_t d_name_len = str_size(d_info.d_name);
@@ -206,5 +211,6 @@
 	for (i = 0; i < mnode->ino_i->i_size / sbi->dirsize; ++i) {
 		r = read_dentry(mnode, &d_info, i);
-		on_error(r, return r);
+		if (r != EOK)
+			return r;
 
 		if (d_info.d_inum == 0) {
@@ -219,5 +225,6 @@
 		pos = mnode->ino_i->i_size;
 		r = read_map(&b, mnode, pos);
-		on_error(r, goto out);
+		if (r != EOK)
+			goto out;
 
 		if (b == 0) {
@@ -226,7 +233,9 @@
 			uint32_t dummy;
 			r = mfs_alloc_zone(mnode->instance, &b);
-			on_error(r, goto out);
+			if (r != EOK)
+				goto out;
 			r = write_map(mnode, pos, b, &dummy);
-			on_error(r, goto out);
+			if (r != EOK)
+				goto out;
 		}
 
Index: uspace/srv/fs/minixfs/mfs_inode.c
===================================================================
--- uspace/srv/fs/minixfs/mfs_inode.c	(revision 03bc76a7fb314e6f8a8a718e724a331923b447b8)
+++ uspace/srv/fs/minixfs/mfs_inode.c	(revision c699b0c822664d5453a8b361e77a832b578b588a)
@@ -96,5 +96,6 @@
 		      itable_off + inum / sbi->ino_per_block,
 		      BLOCK_FLAGS_NONE);
-	on_error(r, goto out_err);
+	if (r != EOK)
+		goto out_err;
 
 	ino = b->data + ino_off * sizeof(struct mfs_inode);
@@ -152,5 +153,6 @@
 		      itable_off + inum / sbi->ino_per_block,
 		      BLOCK_FLAGS_NONE);
-	on_error(r, goto out_err);
+	if (r != EOK)
+		goto out_err;
 
 	ino = b->data + ino_off * sizeof(struct mfs2_inode);
@@ -225,5 +227,6 @@
 		      BLOCK_FLAGS_NONE);
 
-	on_error(r, goto out);
+	if (r != EOK)
+		goto out;
 
 	struct mfs_inode *ino = b->data;
@@ -267,5 +270,6 @@
 		      BLOCK_FLAGS_NONE);
 
-	on_error(r, goto out);
+	if (r != EOK)
+		goto out;
 
 	struct mfs2_inode *ino2 = b->data;
@@ -330,5 +334,6 @@
 
 		r = write_map(mnode, pos, 0, &old_zone);
-		on_error(r, goto exit_error);
+		if (r != EOK)
+			goto exit_error;
 
 		ino_i->i_size -= bs;
@@ -338,5 +343,6 @@
 
 		r = mfs_free_zone(mnode->instance, old_zone);
-		on_error(r, goto exit_error);
+		if (r != EOK)
+			goto exit_error;
 	}
 
Index: uspace/srv/fs/minixfs/mfs_ops.c
===================================================================
--- uspace/srv/fs/minixfs/mfs_ops.c	(revision 03bc76a7fb314e6f8a8a718e724a331923b447b8)
+++ uspace/srv/fs/minixfs/mfs_ops.c	(revision c699b0c822664d5453a8b361e77a832b578b588a)
@@ -335,9 +335,11 @@
 
 	r = mfs_instance_get(service_id, &inst);
-	on_error(r, return r);
+	if (r != EOK)
+		return r;
 
 	/*Alloc a new inode*/
 	r = mfs_alloc_inode(inst, &inum);
-	on_error(r, return r);
+	if (r != EOK)
+		return r;
 
 	struct mfs_ino_info *ino_i;
@@ -432,5 +434,6 @@
 	for (i = 0; i < mnode->ino_i->i_size / sbi->dirsize; ++i) {
 		r = read_dentry(mnode, &d_info, i);
-		on_error(r, return r);
+		if (r != EOK)
+			return r;
 
 		if (!d_info.d_inum) {
@@ -475,5 +478,6 @@
 
 	rc = mfs_instance_get(service_id, &instance);
-	on_error(rc, return rc);
+	if (rc != EOK)
+		return rc;
 
 	return mfs_node_core_get(rfn, instance, index);
@@ -583,5 +587,6 @@
 
 	rc = get_inode(inst, &ino_i, index);
-	on_error(rc, goto out_err);
+	if (rc != EOK)
+		goto out_err;
 
 	ino_i->index = index;
@@ -641,13 +646,16 @@
 
 	int r = insert_dentry(parent, name, child->ino_i->index);
-	on_error(r, goto exit_error);
+	if (r != EOK)
+		goto exit_error;
 
 	if (S_ISDIR(child->ino_i->i_mode)) {
 		r = insert_dentry(child, ".", child->ino_i->index);
-		on_error(r, goto exit_error);
+		if (r != EOK)
+			goto exit_error;
 		//child->ino_i->i_nlinks++;
 		//child->ino_i->dirty = true;
 		r = insert_dentry(child, "..", parent->ino_i->index);
-		on_error(r, goto exit_error);
+		if (r != EOK)
+			goto exit_error;
 		//parent->ino_i->i_nlinks++;
 		//parent->ino_i->dirty = true;
@@ -672,5 +680,6 @@
 
 	r = mfs_has_children(&has_children, cfn);
-	on_error(r, return r);
+	if (r != EOK)
+		return r;
 
 	if (has_children)
@@ -678,5 +687,6 @@
 
 	r = remove_dentry(parent, name);
-	on_error(r, return r);
+	if (r != EOK)
+		return r;
 
 	struct mfs_ino_info *chino = child->ino_i;
@@ -713,5 +723,6 @@
 	for (i = 2; i < mnode->ino_i->i_size / sbi->dirsize; ++i) {
 		r = read_dentry(mnode, &d_info, i);
-		on_error(r, return r);
+		if (r != EOK)
+			return r;
 
 		if (d_info.d_inum) {
@@ -764,5 +775,6 @@
 		for (; pos < mnode->ino_i->i_size / sbi->dirsize; ++pos) {
 			rc = read_dentry(mnode, &d_info, pos);
-			on_error(rc, goto out_error);
+			if (rc != EOK)
+				goto out_error;
 
 			if (d_info.d_inum) {
@@ -796,5 +808,6 @@
 
 		rc = read_map(&zone, mnode, pos);
-		on_error(rc, goto out_error);
+		if (rc != EOK)
+			goto out_error;
 
 		if (zone == 0) {
@@ -813,5 +826,6 @@
 
 		rc = block_get(&b, service_id, zone, BLOCK_FLAGS_NONE);
-		on_error(rc, goto out_error);
+		if (rc != EOK)
+			goto out_error;
 
 		async_data_read_finalize(callid, b->data +
@@ -870,10 +884,12 @@
 	if (pos < boundary) {
 		r = read_map(&block, mnode, pos);
-		on_error(r, goto out_err);
+		if (r != EOK)
+			goto out_err;
 
 		if (block == 0) {
 			/*Writing in a sparse block*/
 			r = mfs_alloc_zone(mnode->instance, &block);
-			on_error(r, goto out_err);
+			if (r != EOK)
+				goto out_err;
 			flags = BLOCK_FLAGS_NOREAD;
 		}
@@ -882,13 +898,16 @@
 
 		r = mfs_alloc_zone(mnode->instance, &block);
-		on_error(r, goto out_err);
+		if (r != EOK)
+			goto out_err;
 
 		r = write_map(mnode, pos, block, &dummy);
-		on_error(r, goto out_err);
+		if (r != EOK)
+			goto out_err;
 	}
 
 	block_t *b;
 	r = block_get(&b, service_id, block, flags);
-	on_error(r, goto out_err);
+	if (r != EOK)
+		goto out_err;
 
 	async_data_write_finalize(callid, b->data + pos % bs, bytes);
@@ -941,5 +960,6 @@
 
 	r = mfs_has_children(&has_children, fn);
-	on_error(r, goto out);
+	if (r != EOK)
+		goto out;
 
 	assert(!has_children);
@@ -953,5 +973,6 @@
 	/*Free the entire inode content*/
 	r = inode_shrink(mnode, mnode->ino_i->i_size);
-	on_error(r, goto out);
+	if (r != EOK)
+		goto out;
 	r = mfs_free_inode(mnode->instance, mnode->ino_i->index);
 
Index: uspace/srv/fs/minixfs/mfs_rw.c
===================================================================
--- uspace/srv/fs/minixfs/mfs_rw.c	(revision 03bc76a7fb314e6f8a8a718e724a331923b447b8)
+++ uspace/srv/fs/minixfs/mfs_rw.c	(revision c699b0c822664d5453a8b361e77a832b578b588a)
@@ -135,5 +135,6 @@
 				uint32_t zone;
 				r = alloc_zone_and_clear(inst, &zone);
-				on_error(r, return r);
+				if (r != EOK)
+					return r;
 
 				ino_i->i_izone[0] = zone;
@@ -147,5 +148,6 @@
 
 		r = read_ind_zone(inst, ino_i->i_izone[0], &ind_zone);
-		on_error(r, return r);
+		if (r != EOK)
+			return r;
 
 		*b = ind_zone[rblock];
@@ -167,5 +169,6 @@
 			uint32_t zone;
 			r = alloc_zone_and_clear(inst, &zone);
-			on_error(r, return r);
+			if (r != EOK)
+				return r;
 
 			ino_i->i_izone[1] = zone;
@@ -179,5 +182,6 @@
 
 	r = read_ind_zone(inst, ino_i->i_izone[1], &ind_zone);
-	on_error(r, return r);
+	if (r != EOK)
+		return r;
 
 	/*
@@ -192,5 +196,6 @@
 			uint32_t zone;
 			r = alloc_zone_and_clear(inst, &zone);
-			on_error(r, goto out_free_ind1);
+			if (r != EOK)
+				goto out_free_ind1;
 
 			ind_zone[ind2_off] = zone;
@@ -205,5 +210,6 @@
 
 	r = read_ind_zone(inst, ind_zone[ind2_off], &ind2_zone);
-	on_error(r, goto out_free_ind1);
+	if (r != EOK)
+		goto out_free_ind1;
 
 	*b = ind2_zone[ind2_off % ptrs_per_block];
@@ -247,5 +253,6 @@
 		if (ino_i->i_izone[0]) {
 			r = mfs_free_zone(inst, ino_i->i_izone[0]);
-			on_error(r, return r);
+			if (r != EOK)
+				return r;
 
 			ino_i->i_izone[0] = 0;
@@ -270,5 +277,6 @@
 
 	r = read_ind_zone(inst, ino_i->i_izone[1], &dbl_zone);
-	on_error(r, return r);
+	if (r != EOK)
+		return r;
 
 	for (i = fzone_to_free; i < ptrs_per_block; ++i) {
@@ -277,5 +285,6 @@
 
 		r = mfs_free_zone(inst, dbl_zone[i]);
-		on_error(r, goto out);
+		if (r != EOK)
+			goto out;
 	}
 
@@ -297,5 +306,6 @@
 
 	r = block_get(&b, inst->service_id, zone, BLOCK_FLAGS_NOREAD);
-	on_error(r, return r);
+	if (r != EOK)
+		return r;
 
 	memset(b->data, 0, b->size);
@@ -311,5 +321,6 @@
 
 	r = mfs_alloc_zone(inst, zone);
-	on_error(r, return r);
+	if (r != EOK)
+		return r;
 
 	r = reset_zone_content(inst, *zone);
@@ -361,5 +372,6 @@
 
 	r = block_get(&b, inst->service_id, zone, BLOCK_FLAGS_NONE);
-	on_error(r, return r);
+	if (r != EOK)
+		return r;
 
 	if (sbi->fs_version == MFS_VERSION_V1) {
