From: Lennart Poettering Date: Sun, 5 Apr 2015 09:26:58 +0000 (+0200) Subject: path-util: don't eat up ENOENT in path_is_mount_point() X-Git-Tag: v226.4~1^2~522 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=9c9d36f9678578d2d321cb18ff31b2e1c224a63a path-util: don't eat up ENOENT in path_is_mount_point() There's no reason to eat up ENOENT, it should be OK to simply report the error back. --- diff --git a/src/shared/path-util.c b/src/shared/path-util.c index 8487d26fc..a01475a61 100644 --- a/src/shared/path-util.c +++ b/src/shared/path-util.c @@ -496,8 +496,6 @@ int fd_is_mount_point(int fd) { * mount point), otherwise fallback to the * traditional stat() logic */ nosupp = true; - else if (errno == ENOENT) - return 0; else return -errno; } @@ -537,12 +535,8 @@ int fd_is_mount_point(int fd) { fallback: r = fstatat(fd, "", &a, AT_EMPTY_PATH); - if (r < 0) { - if (errno == ENOENT) - return 0; - + if (r < 0) return -errno; - } r = fstatat(fd, "..", &b, 0); if (r < 0) @@ -559,18 +553,15 @@ fallback: int path_is_mount_point(const char *t, bool allow_symlink) { _cleanup_close_ int fd = -1; + assert(t); if (path_equal(t, "/")) return 1; fd = openat(AT_FDCWD, t, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|(allow_symlink ? 0 : O_PATH)); - if (fd < 0) { - if (errno == ENOENT) - return 0; - + if (fd < 0) return -errno; - } return fd_is_mount_point(fd); }