libfstools: fit: improve fit_volume_find string handling
[project/fstools.git] / block.c
diff --git a/block.c b/block.c
index 7b2ea8fd31141d87baed7d0ca26372e1ff42daf3..37f5bfb4dd98938b456c6d3b2c0b2918ffc9062c 100644 (file)
--- a/block.c
+++ b/block.c
@@ -593,6 +593,7 @@ static void cache_load(int mtd)
        _cache_load("/dev/vd*");
        _cache_load("/dev/xvd*");
        _cache_load("/dev/dm-*");
+       _cache_load("/dev/fit*");
 }
 
 
@@ -1479,7 +1480,13 @@ static int check_extroot(char *path)
        FILE *fp;
        int err;
 
-       err = find_block_mtd("\"rootfs\"", devpath, sizeof(devpath));
+       snprintf(tag, sizeof(tag), "%s/etc/.extroot-default", path);
+       if (stat(tag, &s))
+               return 0;
+
+       err = find_root_dev(devpath, sizeof(devpath));
+       if (err)
+               err = find_block_mtd("\"rootfs\"", devpath, sizeof(devpath));
 #ifdef UBIFS_EXTROOT
        if (err) {
                libubi_t libubi;
@@ -1489,9 +1496,6 @@ static int check_extroot(char *path)
                libubi_close(libubi);
        }
 #endif
-       if (err) {
-               err = find_root_dev(devpath, sizeof(devpath));
-       }
        if (err) {
                ULOG_ERR("extroot: unable to determine root device\n");
                return -1;