Index: uspace/srv/fs/fat/fat_ops.c
===================================================================
--- uspace/srv/fs/fat/fat_ops.c	(revision 15eeb9331771073b08d539a74375d37111c255b9)
+++ uspace/srv/fs/fat/fat_ops.c	(revision dc9162b9185e5bbf68a810f11aed714183f91ffd)
@@ -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;
 
