summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlberto Bursi <alberto.bursi@outlook.it>2016-10-27 20:59:27 +0000
committerJohn Crispin <john@phrozen.org>2016-10-31 16:36:17 +0100
commit94a5b0ad8d53f024f036c3526b48c34ebbd66a2f (patch)
treea46520b8c722ba4deafe63c94b04b5f825404b0f
parentf027c681e91aa1839134cb66cf965bb1995c033c (diff)
downloadfstools-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.c15
1 files 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;
}