]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
dir_detect: warn on eperm 2037/head
authorSerge Hallyn <shallyn@cisco.com>
Thu, 14 Dec 2017 19:16:02 +0000 (13:16 -0600)
committerSerge Hallyn <shallyn@cisco.com>
Thu, 14 Dec 2017 19:32:14 +0000 (13:32 -0600)
if user has lxc.rootfs.path = /some/path/foo, but can't access
some piece of that path, then we'll get an unhelpful "failed to
mount" without any indication of the problem.

At least show that there is a permission problem.

Signed-off-by: Serge Hallyn <shallyn@cisco.com>
src/lxc/storage/dir.c

index fd2e075268eb2e9aaf0835b5c745693cac43fca8..bfd3827deecf05f6afda6c7995f11fb7aee7c55f 100644 (file)
@@ -136,10 +136,19 @@ int dir_destroy(struct lxc_storage *orig)
 
 bool dir_detect(const char *path)
 {
+       struct stat statbuf;
+       int ret;
+
        if (!strncmp(path, "dir:", 4))
                return true;
 
-       if (is_dir(path))
+       ret = stat(path, &statbuf);
+       if (ret == -1 && errno == EPERM) {
+               SYSERROR("dir_detect: failed to look at \"%s\"", path);
+               return false;
+       }
+
+       if (ret == 0 && S_ISDIR(statbuf.st_mode))
                return true;
 
        return false;