Index: uspace/srv/fs/minixfs/mfs_super.c
===================================================================
--- uspace/srv/fs/minixfs/mfs_super.c	(revision 68ed0fbd3af1b0e52b41d4dd499695858daa57db)
+++ uspace/srv/fs/minixfs/mfs_super.c	(revision 8ceba1e4d85364d1f4f4715634a5ddcafb2219eb)
@@ -40,5 +40,6 @@
 #include "../../vfs/vfs.h"
 
-static bool check_magic_number(int16_t magic, bool *native, mfs_version_t *version);
+static bool check_magic_number(uint16_t magic, bool *native,
+				mfs_version_t *version, bool *longfilenames);
 
 void mfs_mounted(ipc_callid_t rid, ipc_call_t *request)
@@ -47,5 +48,5 @@
 	enum cache_mode cmode;	
 	struct mfs3_superblock *sp;
-	bool native;
+	bool native, longnames;
 	mfs_version_t version;
 
@@ -85,5 +86,5 @@
 	sp = block_bb_get(devmap_handle);
 
-	if (!check_magic_number(sp->s_magic, &native, &version)) {
+	if (!check_magic_number(sp->s_magic, &native, &version, &longnames)) {
 		/*Magic number is invalid!*/
 		block_fini(devmap_handle);
@@ -93,13 +94,26 @@
 }
 
-static bool check_magic_number(int16_t magic, bool *native, mfs_version_t *version)
+static bool check_magic_number(uint16_t magic, bool *native,
+				mfs_version_t *version, bool *longfilenames)
 {
+	*longfilenames = false;
+
 	if (magic == MFS_MAGIC_V1 || magic == MFS_MAGIC_V1R) {
 		*native = magic == MFS_MAGIC_V1;
 		*version = MFS_VERSION_V1;
 		return true;
+	} else if (magic == MFS_MAGIC_V1L || magic == MFS_MAGIC_V1LR) {
+		*native = magic == MFS_MAGIC_V1L;
+		*version = MFS_VERSION_V1;
+		*longfilenames = true;
+		return true;
 	} else if (magic == MFS_MAGIC_V2 || magic == MFS_MAGIC_V2R) {
 		*native = magic == MFS_MAGIC_V2;
 		*version = MFS_VERSION_V2;
+		return true;
+	} else if (magic == MFS_MAGIC_V2L || magic == MFS_MAGIC_V2LR) {
+		*native = magic == MFS_MAGIC_V2L;
+		*version = MFS_VERSION_V2;
+		*longfilenames = true;
 		return true;
 	} else if (magic == MFS_MAGIC_V3 || magic == MFS_MAGIC_V3R) {
