From 94a5b0ad8d53f024f036c3526b48c34ebbd66a2f Mon Sep 17 00:00:00 2001 From: Alberto Bursi Date: Thu, 27 Oct 2016 20:59:27 +0000 Subject: [PATCH] fstools: added f2fs to block added code to block so it can recognize and operate the filesystem checker of f2fs added f2fs to the filesystem whitelist of block so it can mount it on /overlay at boot. Signed-off-by: Alberto Bursi --- block.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/block.c b/block.c index 24becef..05f84aa 100644 --- a/block.c +++ b/block.c @@ -690,6 +690,7 @@ static void check_filesystem(struct probe_info *pr) pid_t pid; struct stat statbuf; const char *e2fsck = "/usr/sbin/e2fsck"; + const char *f2fsck = "/usr/sbin/fsck.f2fs"; const char *dosfsck = "/usr/sbin/dosfsck"; const char *ckfs; @@ -699,6 +700,8 @@ static void check_filesystem(struct probe_info *pr) if (!strncmp(pr->type, "vfat", 4)) { ckfs = dosfsck; + } else if (!strncmp(pr->type, "f2fs", 4)) { + ckfs = f2fsck; } else if (!strncmp(pr->type, "ext", 3)) { ckfs = e2fsck; } else { @@ -713,8 +716,13 @@ static void check_filesystem(struct probe_info *pr) pid = fork(); if (!pid) { - execl(ckfs, ckfs, "-p", pr->dev, NULL); - exit(-1); + if(!strncmp(pr->type, "f2fs", 4)) { + execl(ckfs, ckfs, "-f", pr->dev, NULL); + exit(-1); + } else { + execl(ckfs, ckfs, "-p", pr->dev, NULL); + exit(-1); + } } else if (pid > 0) { int status; @@ -1293,8 +1301,9 @@ static int mount_extroot(char *cfg) } if (pr) { if (strncmp(pr->type, "ext", 3) && + strncmp(pr->type, "f2fs", 4) && strncmp(pr->type, "ubifs", 5)) { - ULOG_ERR("extroot: unsupported filesystem %s, try ext4\n", pr->type); + ULOG_ERR("extroot: unsupported filesystem %s, try ext4, f2fs or ubifs\n", pr->type); return -1; } -- 2.25.1