Index: uspace/srv/fs/fat/fat_fat.c
===================================================================
--- uspace/srv/fs/fat/fat_fat.c	(revision 700eaa90af7318438d4d5388b778c5083a21f188)
+++ uspace/srv/fs/fat/fat_fat.c	(revision 23b56ca567016873e61bb22786d7411d052e9e16)
@@ -214,5 +214,25 @@
     fat_cluster_t value)
 {
-	/* TODO */
+	block_t *bb, *blk;
+	uint16_t bps;
+	uint16_t rscnt;
+	uint16_t sf;
+	uint8_t fatcnt;
+	fat_cluster_t *cp;
+
+	bb = block_get(dev_handle, BS_BLOCK, BS_SIZE);
+	bps = uint16_t_le2host(FAT_BS(bb)->bps);
+	rscnt = uint16_t_le2host(FAT_BS(bb)->rscnt);
+	sf = uint16_t_le2host(FAT_BS(bb)->sec_per_fat);
+	fatcnt = FAT_BS(bb)->fatcnt;
+	block_put(bb);
+
+	assert(fatno < fatcnt);
+	blk = block_get(dev_handle, rscnt + sf * fatno +
+	    (clst * sizeof(fat_cluster_t)) / bps, bps);
+	cp = (fat_cluster_t *)blk->data + clst % (bps / sizeof(fat_cluster_t));
+	*cp = host2uint16_t_le(value);
+	blk->dirty = true;		/* need to sync block */
+	block_put(blk);
 }
 
