Index: uspace/srv/fs/fat/fat_ops.c
===================================================================
--- uspace/srv/fs/fat/fat_ops.c	(revision 9a15176934d30314b2ac25717713bdcf2bca7479)
+++ uspace/srv/fs/fat/fat_ops.c	(revision f5af63551dff4de3a7ab1cf6b8554664b6554751)
@@ -331,10 +331,9 @@
 				continue;
 			case FAT_DENTRY_LAST:
+				/* miss */
 				rc = block_put(b);
-				/* expect EOK as b was not dirty */
-				assert(rc == EOK);	
 				fibril_mutex_unlock(&parentp->idx->lock);
 				*rfn = NULL;
-				return EOK;
+				return rc;
 			default:
 			case FAT_DENTRY_VALID:
@@ -361,14 +360,10 @@
 					 */
 					rc = block_put(b);
-					/* expect EOK as b was not dirty */
-					assert(rc == EOK);	
-					return ENOMEM;
+					return (rc == EOK) ? ENOMEM : rc;
 				}
 				rc = fat_node_get_core(&nodep, idx);
 				assert(rc == EOK);
 				fibril_mutex_unlock(&idx->lock);
-				rc = block_put(b);
-				/* expect EOK as b was not dirty */
-				assert(rc == EOK);
+				(void) block_put(b);
 				*rfn = FS_NODE(nodep);
 				return EOK;
@@ -376,5 +371,8 @@
 		}
 		rc = block_put(b);
-		assert(rc == EOK);	/* expect EOK as b was not dirty */
+		if (rc != EOK) {
+			fibril_mutex_unlock(&parentp->idx->lock);
+			return rc;
+		}
 	}
 
@@ -810,21 +808,20 @@
 			case FAT_DENTRY_LAST:
 				rc = block_put(b);
-				/* expect EOK as b was not dirty */
-				assert(rc == EOK);
 				fibril_mutex_unlock(&nodep->idx->lock);
 				*has_children = false;
-				return EOK;
+				return rc;
 			default:
 			case FAT_DENTRY_VALID:
 				rc = block_put(b);
-				/* expect EOK as b was not dirty */
-				assert(rc == EOK);
 				fibril_mutex_unlock(&nodep->idx->lock);
 				*has_children = true;
-				return EOK;
+				return rc;
 			}
 		}
 		rc = block_put(b);
-		assert(rc == EOK);	/* expect EOK as b was not dirty */
+		if (rc != EOK) {
+			fibril_mutex_unlock(&nodep->idx->lock);
+			return rc;	
+		}
 	}
 
