chiark / gitweb /
path-util: Change path_is_mount_point() symlink arg from bool to flags
authorMartin Pitt <martin.pitt@ubuntu.com>
Fri, 29 May 2015 15:13:12 +0000 (17:13 +0200)
committerSven Eden <yamakuzure@gmx.net>
Tue, 14 Mar 2017 09:01:13 +0000 (10:01 +0100)
This makes path_is_mount_point() consistent with fd_is_mount_point() wrt.
flags.

src/login/logind-user.c
src/shared/cgroup-util.c
src/shared/condition.c
src/shared/machine-pool.c
src/shared/path-util.c
src/shared/path-util.h

index 2f62e34f6319a68cbdd528191bcdba1bbbcc7893..373c9938e769c17ca933d4fb53555ef05e89a41b 100644 (file)
@@ -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);
index 78270b3fa93116bc1697166540d9b070196350f5..a48b312018c26d420a1c1a10a0509fa1fd84cc8b 100644 (file)
@@ -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)
index 9f2574c2f62d7d06728c2a45e18f72fab48a61a5..24871b0daedb2b3491e78aaff0f42803ad1a79cc 100644 (file)
@@ -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) {
index 9920d150abbada3774956311f8a3aa90b6098de2..447983fb1b2c847be5aad9adbac5563b9246d290 100644 (file)
@@ -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.");
 
index 8be479cd7fcab6b4ee6d03695127abda1fb780bf..be50a1865df9c7acfb2d55c9a95c969adc83e1d1 100644 (file)
@@ -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) {
index 38ad799ba0d9d273048e51956e6daaefe04204c6..1eac89c51b6a1b7a9a211b053cc7baa0ff34cdb1 100644 (file)
@@ -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);