Index: uspace/srv/vfs/vfs_ops.c
===================================================================
--- uspace/srv/vfs/vfs_ops.c	(revision 4af2f36b11db00055ccbe8e847c1c43ff7c4bf86)
+++ uspace/srv/vfs/vfs_ops.c	(revision 460514d848db3489c939142c09e79725c198cea4)
@@ -359,15 +359,4 @@
 	fibril_mutex_unlock(&fs_list_lock);
 
-	/* Do the mount */
-	rc = vfs_mount_internal(rid, service_id, fs_handle, mp, opts);
-	if (rc != EOK) {
-		async_answer_0(callid, ENOTSUP);
-		async_answer_0(rid, ENOTSUP);
-		free(mp);
-		free(opts);
-		free(fs_name);
-		return;
-	}
-
 	/* Add the filesystem info to the list of mounted filesystems */
 	mtab_ent_t *mtab_ent = malloc(sizeof(mtab_ent_t));
@@ -380,4 +369,18 @@
 		return;
 	}
+
+	/* Do the mount */
+	rc = vfs_mount_internal(rid, service_id, fs_handle, mp, opts);
+	if (rc != EOK) {
+		async_answer_0(callid, ENOTSUP);
+		async_answer_0(rid, ENOTSUP);
+		free(mtab_ent);
+		free(mp);
+		free(opts);
+		free(fs_name);
+		return;
+	}
+
+	/* Add the filesystem info to the list of mounted filesystems */
 
 	str_cpy(mtab_ent->mp, MAX_PATH_LEN, mp);
