@@ -687,6 +687,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;
@@ -696,6 +697,8 @@ static void check_filesystem(struct probe_info *pr)
if (!strncmp(pr->type, "vfat", 4)) {
ckfs = dosfsck;
+ } else if (!strncmp(pr->id->name, "f2fs", 4)) {
+ ckfs = f2fsck;
} else if (!strncmp(pr->type, "ext", 3)) {
ckfs = e2fsck;
} else {
@@ -710,8 +713,12 @@ static void check_filesystem(struct probe_info *pr)
pid = fork();
if (!pid) {
- execl(ckfs, ckfs, "-p", pr->dev, NULL);
- exit(-1);
+ if(!strncmp(pr->id->name, "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;
@@ -1154,8 +1161,9 @@ static int mount_extroot(char *cfg)
}
if (pr) {
if (strncmp(pr->type, "ext", 3) &&
+ strncmp(pr->id->name, "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 or f2fs\n", pr->type);
return -1;
}
added the code to 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> --- block.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-)