diff mbox series

[OpenWrt-Devel] fstools: add ntfs support

Message ID 20180928225441.163-1-ansuelsmth@gmail.com
State Superseded
Headers show
Series [OpenWrt-Devel] fstools: add ntfs support | expand

Commit Message

Christian Marangi Sept. 28, 2018, 10:54 p.m. UTC
This adds ntfs support to block-mount

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
---
 block.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/block.c b/block.c
index b377429..1e82a38 100644
--- a/block.c
+++ b/block.c
@@ -711,6 +711,7 @@  static void check_filesystem(struct probe_info *pr)
 	const char *f2fsck = "/usr/sbin/fsck.f2fs";
 	const char *dosfsck = "/usr/sbin/dosfsck";
 	const char *btrfsck = "/usr/bin/btrfsck";
+	const char *ntfsck = "/usr/bin/ntfsfix";
 	const char *ckfs;
 
 	/* UBIFS does not need stuff like fsck */
@@ -725,6 +726,8 @@  static void check_filesystem(struct probe_info *pr)
 		ckfs = e2fsck;
 	} else if (!strncmp(pr->type, "btrfs", 5)) {
 		ckfs = btrfsck;
+	} else if (!strncmp(pr->type, "ntfs", 5)) {
+		ckfs = ntfsck;
 	} else {
 		ULOG_ERR("check_filesystem: %s is not supported\n", pr->type);
 		return;
@@ -743,6 +746,9 @@  static void check_filesystem(struct probe_info *pr)
 		} else if(!strncmp(pr->type, "btrfs", 5)) {
 			execl(ckfs, ckfs, "--repair", pr->dev, NULL);
 			exit(-1);
+		} else if(!strncmp(pr->type, "ntfs", 5)) {
+			execl(ckfs, ckfs, "-b", pr->dev, NULL);
+			exit(-1);
 		} else {
 			execl(ckfs, ckfs, "-p", pr->dev, NULL);
 			exit(-1);
@@ -1437,8 +1443,9 @@  static int mount_extroot(char *cfg)
 		if (strncmp(pr->type, "ext", 3) &&
 		    strncmp(pr->type, "f2fs", 4) &&
 		    strncmp(pr->type, "btrfs", 5) &&
+		    strncmp(pr->type, "ntfs", 5) &&
 		    strncmp(pr->type, "ubifs", 5)) {
-			ULOG_ERR("extroot: unsupported filesystem %s, try ext4, f2fs, btrfs or ubifs\n", pr->type);
+			ULOG_ERR("extroot: unsupported filesystem %s, try ext4, f2fs, btrfs, ntfs or ubifs\n", pr->type);
 			return -1;
 		}