]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
ip netns: Show error message if mkdir failed to create /var/run/netns
authorvadimk <vadim4j@gmail.com>
Thu, 28 Aug 2014 13:56:03 +0000 (16:56 +0300)
committerStephen Hemminger <stephen@networkplumber.org>
Fri, 29 Aug 2014 07:13:52 +0000 (00:13 -0700)
Currently if mkdir failed with "Permission denied" error then "mount --make-shared ..."
error message will be showed because /var/run/netns does not exist.

Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
ip/ipnetns.c

index 633b5b96212fb4bef5dde1a293b422a5c99797ef..7f829088f18d05d449c9aec865eb7433af5e65c5 100644 (file)
@@ -407,7 +407,13 @@ static int netns_add(int argc, char **argv)
        snprintf(netns_path, sizeof(netns_path), "%s/%s", NETNS_RUN_DIR, name);
 
        /* Create the base netns directory if it doesn't exist */
-       mkdir(NETNS_RUN_DIR, S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH);
+       if (mkdir(NETNS_RUN_DIR, S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH)) {
+               if (errno != EEXIST) {
+                       fprintf(stderr, "mkdir %s failed: %s\n",
+                               NETNS_RUN_DIR, strerror(errno));
+                       return -1;
+               }
+       }
 
        /* Make it possible for network namespace mounts to propagate between
         * mount namespaces.  This makes it likely that a unmounting a network