Index: uspace/srv/fs/fat/fat_ops.c
===================================================================
--- uspace/srv/fs/fat/fat_ops.c	(revision 8416d463d2cdec1889f4d2b04c2a701b948130de)
+++ uspace/srv/fs/fat/fat_ops.c	(revision 3e30c0b87994ab6bf5f92eb3914e2382166de792)
@@ -324,4 +324,15 @@
 	/* Check number of sectors per FAT. */
 	if (bs->sec_per_fat == 0)
+		return ENOTSUP;
+
+	/*
+	 * Check that the root directory entries take up whole blocks.
+	 * This check is rather strict, but it allows us to treat the root
+	 * directory and non-root directories uniformly in some places.
+	 * It can be removed provided that functions such as fat_read() are
+	 * sanitized to support file systems with this property.
+	 */
+	if ((uint16_t_le2host(bs->root_ent_max) * sizeof(fat_dentry_t)) %
+	    uint16_t_le2host(bs->bps) != 0)
 		return ENOTSUP;
 
