cmd: ubi.c: skip part command if right partition is already attached
authorAlexandre Besnard <alexandre.besnard@softathome.com>
Mon, 4 Apr 2022 15:50:14 +0000 (17:50 +0200)
committerTom Rini <trini@konsulko.com>
Thu, 14 Apr 2022 19:39:15 +0000 (15:39 -0400)
Attaching a UBI partition may take a while, since scanning the memory is
required.
It thus makes sense to avoid a detach/scan/attach cycle when the right
partition is already attached, and let the calling process call 'detach'
beforehand if it needs it.

This commit checks for the currently attached UBI partition, and skips
reattaching if not needed, showing an information.

Signed-off-by: Alexandre Besnard <alexandre.besnard@softathome.com>
cmd/ubi.c

index fe8ac58..fccbfdf 100644 (file)
--- a/cmd/ubi.c
+++ b/cmd/ubi.c
@@ -511,6 +511,11 @@ int ubi_part(char *part_name, const char *vid_header_offset)
        struct mtd_info *mtd;
        int err = 0;
 
+       if (ubi && ubi->mtd && !strcmp(ubi->mtd->name, part_name)) {
+               printf("UBI partition '%s' already selected\n", part_name);
+               return 0;
+       }
+
        ubi_detach();
 
        mtd_probe_devices();