partition: support texfat module

Change-Id: I21d0498fc16fdb29d09d6e6fe715e57d1f35e72b
diff --git a/partition.cpp b/partition.cpp
index b5aaccc..248ee9b 100644
--- a/partition.cpp
+++ b/partition.cpp
@@ -1001,7 +1001,15 @@
 			}
 			return true;
 		}
-	} else if (!exfat_mounted && mount(Actual_Block_Device.c_str(), Mount_Point.c_str(), Current_File_System.c_str(), Mount_Flags, Mount_Options.c_str()) != 0 && mount(Actual_Block_Device.c_str(), Mount_Point.c_str(), Current_File_System.c_str(), Mount_Flags, NULL) != 0) {
+	}
+
+	string mount_fs = Current_File_System;
+	if (Current_File_System == "exfat" && TWFunc::Path_Exists("/sys/module/texfat"))
+		mount_fs = "texfat";
+
+	if (!exfat_mounted &&
+		mount(Actual_Block_Device.c_str(), Mount_Point.c_str(), mount_fs.c_str(), Mount_Flags, Mount_Options.c_str()) != 0 &&
+		mount(Actual_Block_Device.c_str(), Mount_Point.c_str(), mount_fs.c_str(), Mount_Flags, NULL) != 0) {
 #ifdef TW_NO_EXFAT_FUSE
 		if (Current_File_System == "exfat") {
 			LOGINFO("Mounting exfat failed, trying vfat...\n");