diff options
author | Alberto Bursi <alberto.bursi@outlook.it> | 2016-10-27 20:59:27 +0000 |
---|---|---|
committer | John Crispin <john@phrozen.org> | 2016-10-31 16:36:17 +0100 |
commit | 94a5b0ad8d53f024f036c3526b48c34ebbd66a2f (patch) | |
tree | a46520b8c722ba4deafe63c94b04b5f825404b0f | |
parent | f027c681e91aa1839134cb66cf965bb1995c033c (diff) | |
download | fstools-94a5b0ad8d53f024f036c3526b48c34ebbd66a2f.tar.gz |
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 <alberto.bursi@outlook.it>
-rw-r--r-- | block.c | 15 |
1 files changed, 12 insertions, 3 deletions
@@ -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; } |