Index: uspace/srv/fs/cdfs/cdfs_ops.c
===================================================================
--- uspace/srv/fs/cdfs/cdfs_ops.c	(revision c1694b6b243b360b5f1fbf0629b5e7d4f7f4a515)
+++ uspace/srv/fs/cdfs/cdfs_ops.c	(revision 6deb2cdd4f9ffa23e068faa9b3d977ec3399c1ed)
@@ -566,5 +566,5 @@
 }
 
-static bool cdfs_readdir(cdfs_t *fs, fs_node_t *fs_node)
+static int cdfs_readdir(cdfs_t *fs, fs_node_t *fs_node)
 {
 	cdfs_node_t *node = CDFS_NODE(fs_node);
@@ -572,5 +572,5 @@
 	
 	if (node->processed)
-		return true;
+		return EOK;
 	
 	uint32_t blocks = node->size / BLOCK_SIZE;
@@ -582,5 +582,5 @@
 		int rc = block_get(&block, fs->service_id, node->lba + i, BLOCK_FLAGS_NONE);
 		if (rc != EOK)
-			return false;
+			return rc;
 		
 		cdfs_dir_t *dir;
@@ -616,6 +616,8 @@
 			int rc = create_node(&fn, fs, dentry_type,
 			    (node->lba + i) * BLOCK_SIZE + offset);
-			if ((rc != EOK) || (fn == NULL))
-				return false;
+			if (rc != EOK)
+				return rc;
+
+			assert(fn != NULL);
 			
 			cdfs_node_t *cur = CDFS_NODE(fn);
@@ -626,5 +628,5 @@
 			    dir->name_length, node->fs->enc, dentry_type);
 			if (name == NULL)
-				return false;
+				return EIO;
 			
 			// FIXME: check return value
@@ -641,5 +643,5 @@
 	
 	node->processed = true;
-	return true;
+	return EOK;
 }
 
