From c074ec090d670938ca6c70ff82fd039359499705 Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Fri, 29 May 2015 17:13:12 +0200 Subject: [PATCH] path-util: Change path_is_mount_point() symlink arg from bool to flags This makes path_is_mount_point() consistent with fd_is_mount_point() wrt. flags. --- src/login/logind-user.c | 2 +- src/shared/cgroup-util.c | 2 +- src/shared/condition.c | 2 +- src/shared/machine-pool.c | 2 +- src/shared/path-util.c | 5 +++-- src/shared/path-util.h | 2 +- 6 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/login/logind-user.c b/src/login/logind-user.c index 2f62e34f6..373c9938e 100644 --- a/src/login/logind-user.c +++ b/src/login/logind-user.c @@ -320,7 +320,7 @@ static int user_mkdir_runtime_path(User *u) { } else p = u->runtime_path; - if (path_is_mount_point(p, false) <= 0) { + if (path_is_mount_point(p, 0) <= 0) { _cleanup_free_ char *t = NULL; (void) mkdir(p, 0700); diff --git a/src/shared/cgroup-util.c b/src/shared/cgroup-util.c index 78270b3fa..a48b31201 100644 --- a/src/shared/cgroup-util.c +++ b/src/shared/cgroup-util.c @@ -488,7 +488,7 @@ int cg_get_path(const char *controller, const char *path, const char *suffix, ch if (_unlikely_(!good)) { int r; - r = path_is_mount_point("/sys/fs/cgroup", false); + r = path_is_mount_point("/sys/fs/cgroup", 0); if (r < 0) return r; if (r == 0) diff --git a/src/shared/condition.c b/src/shared/condition.c index 9f2574c2f..24871b0da 100644 --- a/src/shared/condition.c +++ b/src/shared/condition.c @@ -349,7 +349,7 @@ static int condition_test_path_is_mount_point(Condition *c) { assert(c->parameter); assert(c->type == CONDITION_PATH_IS_MOUNT_POINT); - return path_is_mount_point(c->parameter, true) > 0; + return path_is_mount_point(c->parameter, AT_SYMLINK_FOLLOW) > 0; } static int condition_test_path_is_read_write(Condition *c) { diff --git a/src/shared/machine-pool.c b/src/shared/machine-pool.c index 9920d150a..447983fb1 100644 --- a/src/shared/machine-pool.c +++ b/src/shared/machine-pool.c @@ -198,7 +198,7 @@ int setup_machine_directory(uint64_t size, sd_bus_error *error) { return 0; } - if (path_is_mount_point("/var/lib/machines", true) > 0 || + if (path_is_mount_point("/var/lib/machines", AT_SYMLINK_FOLLOW) > 0 || dir_is_empty("/var/lib/machines") == 0) return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "/var/lib/machines is not a btrfs file system. Operation is not supported on legacy file systems."); diff --git a/src/shared/path-util.c b/src/shared/path-util.c index 8be479cd7..be50a1865 100644 --- a/src/shared/path-util.c +++ b/src/shared/path-util.c @@ -637,7 +637,8 @@ fallback_fstat: return check_st_dev && (a.st_dev != b.st_dev); } -int path_is_mount_point(const char *t, bool allow_symlink) { +/* flags can be AT_SYMLINK_FOLLOW or 0 */ +int path_is_mount_point(const char *t, int flags) { _cleanup_close_ int fd = -1; _cleanup_free_ char *parent = NULL; int r; @@ -655,7 +656,7 @@ int path_is_mount_point(const char *t, bool allow_symlink) { if (fd < 0) return -errno; - return fd_is_mount_point(fd, basename(t), (allow_symlink ? AT_SYMLINK_FOLLOW : 0)); + return fd_is_mount_point(fd, basename(t), flags); } int path_is_read_only_fs(const char *path) { diff --git a/src/shared/path-util.h b/src/shared/path-util.h index 38ad799ba..1eac89c51 100644 --- a/src/shared/path-util.h +++ b/src/shared/path-util.h @@ -54,7 +54,7 @@ char** path_strv_resolve(char **l, const char *prefix); char** path_strv_resolve_uniq(char **l, const char *prefix); int fd_is_mount_point(int fd, const char *filename, int flags); -int path_is_mount_point(const char *path, bool allow_symlink); +int path_is_mount_point(const char *path, int flags); int path_is_read_only_fs(const char *path); int path_is_os_tree(const char *path); -- 2.30.2