Index: uspace/srv/fs/fat/fat_ops.c
===================================================================
--- uspace/srv/fs/fat/fat_ops.c	(revision 1647323c457b17ec08ec245c295d83f7952313ff)
+++ uspace/srv/fs/fat/fat_ops.c	(revision 453f2e75937cb216fd76a69396c5702b117b2b35)
@@ -1077,9 +1077,18 @@
 			rc = fat_block_get(&b, bs, nodep, pos / bps,
 			    BLOCK_FLAGS_NONE);
-			assert(rc == EOK);
+			if (rc != EOK) {
+				fat_node_put(fn);
+				ipc_answer_0(callid, rc);
+				ipc_answer_0(rid, rc);
+				return;
+			}
 			(void) async_data_read_finalize(callid, b->data + pos % bps,
 			    bytes);
 			rc = block_put(b);
-			assert(rc == EOK);
+			if (rc != EOK) {
+				fat_node_put(fn);
+				ipc_answer_0(rid, rc);
+				return;
+			}
 		}
 	} else {
@@ -1105,5 +1114,6 @@
 			rc = fat_block_get(&b, bs, nodep, bnum,
 			    BLOCK_FLAGS_NONE);
-			assert(rc == EOK);
+			if (rc != EOK)
+				goto err;
 			for (o = pos % (bps / sizeof(fat_dentry_t));
 			    o < bps / sizeof(fat_dentry_t);
@@ -1116,5 +1126,6 @@
 				case FAT_DENTRY_LAST:
 					rc = block_put(b);
-					assert(rc == EOK);
+					if (rc != EOK)
+						goto err;
 					goto miss;
 				default:
@@ -1122,17 +1133,26 @@
 					fat_dentry_name_get(d, name);
 					rc = block_put(b);
-					assert(rc == EOK);
+					if (rc != EOK)
+						goto err;
 					goto hit;
 				}
 			}
 			rc = block_put(b);
-			assert(rc == EOK);
+			if (rc != EOK)
+				goto err;
 			bnum++;
 		}
 miss:
-		fat_node_put(fn);
-		ipc_answer_0(callid, ENOENT);
-		ipc_answer_1(rid, ENOENT, 0);
-		return;
+		rc = fat_node_put(fn);
+		ipc_answer_0(callid, rc != EOK ? rc : ENOENT);
+		ipc_answer_1(rid, rc != EOK ? rc : ENOENT, 0);
+		return;
+
+err:
+		(void) fat_node_put(fn);
+		ipc_answer_0(callid, rc);
+		ipc_answer_0(rid, rc);
+		return;
+
 hit:
 		(void) async_data_read_finalize(callid, name, str_size(name) + 1);
@@ -1140,6 +1160,6 @@
 	}
 
-	fat_node_put(fn);
-	ipc_answer_1(rid, EOK, (ipcarg_t)bytes);
+	rc = fat_node_put(fn);
+	ipc_answer_1(rid, rc, (ipcarg_t)bytes);
 }
 
