Index: uspace/srv/fs/fat/fat_ops.c
===================================================================
--- uspace/srv/fs/fat/fat_ops.c	(revision 2c4bbcde8f30256df2515ebfc870bfff18e933ed)
+++ uspace/srv/fs/fat/fat_ops.c	(revision e1f51712ebecf49aa1054453f57ea2118f705b5f)
@@ -92,5 +92,5 @@
 }
 
-/* TODO and also move somewhere else */
+/* TODO move somewhere else */
 typedef struct {
 	void *data;
@@ -256,5 +256,6 @@
 		 * The node is already instantiated in memory.
 		 */
-		idx->nodep->refcnt++;
+		if (!idx->nodep->refcnt++)
+			list_remove(&nodep->ffn_link);
 		return idx->nodep;
 	}
@@ -316,5 +317,9 @@
 static void fat_node_put(void *node)
 {
-	/* TODO */
+	fat_node_t *nodep = (fat_node_t *)node;
+
+	if (!--nodep->refcnt) {
+		list_append(&nodep->ffn_link, &ffn_head);
+	}
 }
 
