From: Alberto Bursi Date: Thu, 27 Oct 2016 20:59:27 +0000 (+0000) Subject: fstools: added f2fs to block X-Git-Url: http://git.archive.openwrt.org/?p=project%2Ffstools.git;a=commitdiff_plain;h=94a5b0ad8d53f024f036c3526b48c34ebbd66a2f;hp=f027c681e91aa1839134cb66cf965bb1995c033c 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 --- 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; }