Index: uspace/srv/fs/fat/fat_fat.c
===================================================================
--- uspace/srv/fs/fat/fat_fat.c	(revision a5da44692fdd60126ee6a59330558b0460f54775)
+++ uspace/srv/fs/fat/fat_fat.c	(revision e478b2a47fbac7b32b576f7cb94c8ab0361d7b33)
@@ -286,8 +286,8 @@
 }
 
-/** Allocate clusters in FAT1.
+/** Allocate clusters in all copies of FAT.
  *
  * This function will attempt to allocate the requested number of clusters in
- * the first FAT instance.  The FAT will be altered so that the allocated
+ * all instances of the FAT.  The FAT will be altered so that the allocated
  * clusters form an independent chain (i.e. a chain which does not belong to any
  * file yet).
@@ -316,5 +316,5 @@
 
 	lifo = (fat_cluster_t *) malloc(nclsts * sizeof(fat_cluster_t));
-	if (lifo)
+	if (!lifo)
 		return ENOMEM;
 	
@@ -327,6 +327,6 @@
 	 */
 	futex_down(&fat_alloc_lock);
-	for (b = 0, cl = 0; b < sf; blk++) {
-		blk = block_get(dev_handle, rscnt + b, BLOCK_FLAGS_NOREAD);
+	for (b = 0, cl = 0; b < sf; b++) {
+		blk = block_get(dev_handle, rscnt + b, BLOCK_FLAGS_NONE);
 		for (c = 0; c < bps / sizeof(fat_cluster_t); c++, cl++) {
 			fat_cluster_t *clst = (fat_cluster_t *)blk->data + c;
