From 9cd09d4269bb15710b5d9bd72573ef243eb2927c Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Tue, 3 Jan 2023 12:06:58 +0100 Subject: [PATCH] block: try to find the root device on both / and /rom Sometimes / is already overlay mounted, assume /rom contains the real rootfs. Signed-off-by: Luca Barbato --- block.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/block.c b/block.c index 28eac59..7b2ea8f 100644 --- a/block.c +++ b/block.c @@ -1397,14 +1397,14 @@ static int find_block_ubi_RO(libubi_t libubi, char *name, char *part, int plen) } #endif -static int find_root_dev(char *buf, int len) +static int find_dev(const char *path, char *buf, int len) { DIR *d; dev_t root; struct stat s; struct dirent *e; - if (stat("/", &s)) + if (stat(path, &s)) return -1; if (!(d = opendir("/dev"))) @@ -1426,6 +1426,15 @@ static int find_root_dev(char *buf, int len) return -1; } +static int find_root_dev(char *buf, int len) +{ + int err = find_dev("/", buf, len); + if (err) + err = find_dev("/rom", buf, len); + + return err; +} + static int test_fs_support(const char *name) { char line[128], *p; -- 2.30.2