mesh: Don't log error for false positive mkdir failure
authorInga Stotland <inga.stotland@intel.com>
Tue, 30 Nov 2021 23:14:12 +0000 (15:14 -0800)
committerAyush Garg <ayush.garg@samsung.com>
Fri, 11 Mar 2022 13:38:38 +0000 (19:08 +0530)
When invoking mkdir() for mesh configuration storage, do not
report an error if a target directory already exists.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
mesh/keyring.c
mesh/rpl.c
mesh/util.c

index fdef5d2..767d587 100644 (file)
@@ -51,7 +51,7 @@ static int open_key_file(struct mesh_node *node, const char *key_dir,
 
        if (flags & O_CREAT) {
                snprintf(fname, PATH_MAX, "%s%s", node_path, key_dir);
-               if (mkdir(fname, 0755) != 0)
+               if (mkdir(fname, 0755) != 0 && errno != EEXIST)
                        l_error("Failed to create dir(%d): %s", errno, fname);
        }
 
index 3774263..a55dc89 100644 (file)
@@ -258,7 +258,7 @@ void rpl_update(struct mesh_node *node, uint32_t cur)
 
        /* Make sure path exists */
        snprintf(path, PATH_MAX, "%s%s", node_path, rpl_dir);
-       if (mkdir(path, 0755) != 0)
+       if (mkdir(path, 0755) != 0 && errno != EEXIST)
                l_error("Failed to create dir(%d): %s", errno, path);
 
        dir = opendir(path);
@@ -296,7 +296,7 @@ bool rpl_init(const char *node_path)
                return false;
 
        snprintf(path, PATH_MAX, "%s%s", node_path, rpl_dir);
-       if (mkdir(path, 0755) != 0)
+       if (mkdir(path, 0755) != 0 && errno != EEXIST)
                l_error("Failed to create dir(%d): %s", errno, path);
        return true;
 }
index a45a293..37c031a 100644 (file)
@@ -117,13 +117,13 @@ int create_dir(const char *dir_name)
                }
 
                strncat(dir, prev + 1, next - prev);
-               if (mkdir(dir, 0755) != 0)
+               if (mkdir(dir, 0755) != 0 && errno != EEXIST)
                        l_error("Failed to create dir(%d): %s", errno, dir);
 
                prev = next;
        }
 
-       if (mkdir(dir_name, 0755) != 0)
+       if (mkdir(dir_name, 0755) != 0 && errno != EEXIST)
                l_error("Failed to create dir(%d): %s", errno, dir_name);
 
        return 0;