From 57f2a956e63d6b981b9d6277ab800ad4ad386f42 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Thu, 11 Nov 2010 11:15:16 +0100 Subject: [PATCH] split mount_point_is_api() and mount_point_ignore() We should not handle the ignore list as API mounts, as systemd itself never touches them. On Thu, Nov 11, 2010 at 10:34, Andreas Jaeger wrote: > > I noticed for some time that systemd-remount-api-vfs is in the > failed state and found now the following in the log files > > systemd-remount-api-vfs[467]: /bin/mount for /proc/bus/usb exited with exit status 32. > systemd-remount-api-vfs[467]: mount: /proc/bus/usb not mounted already, or bad option > systemd[1]: systemd-remount-api-vfs.service: main process exited, code=exited, status=1 > systemd[1]: Unit systemd-remount-api-vfs.service entered failed state. --- src/mount-setup.c | 8 +++++++- src/mount-setup.h | 1 + src/mount.c | 2 ++ src/umount.c | 2 +- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/mount-setup.c b/src/mount-setup.c index 84a729ebf..9eb2832c6 100644 --- a/src/mount-setup.c +++ b/src/mount-setup.c @@ -74,11 +74,17 @@ bool mount_point_is_api(const char *path) { if (path_equal(path, mount_table[i].where)) return true; + return path_startswith(path, "/sys/fs/cgroup/"); +} + +bool mount_point_ignore(const char *path) { + unsigned i; + for (i = 0; i < ELEMENTSOF(ignore_paths); i++) if (path_equal(path, ignore_paths[i])) return true; - return path_startswith(path, "/sys/fs/cgroup/"); + return false; } static int mount_one(const MountPoint *p) { diff --git a/src/mount-setup.h b/src/mount-setup.h index 47d0e5bb1..150ec408d 100644 --- a/src/mount-setup.h +++ b/src/mount-setup.h @@ -27,5 +27,6 @@ int mount_setup(void); bool mount_point_is_api(const char *path); +bool mount_point_ignore(const char *path); #endif diff --git a/src/mount.c b/src/mount.c index 5d4944abe..4094eef43 100644 --- a/src/mount.c +++ b/src/mount.c @@ -1213,6 +1213,8 @@ static int mount_add_one( * dependencies ever. */ if (mount_point_is_api(where)) return 0; + if (mount_point_ignore(where)) + return 0; if (streq(fstype, "autofs")) return 0; diff --git a/src/umount.c b/src/umount.c index 0081d979d..2ae8f86ec 100644 --- a/src/umount.c +++ b/src/umount.c @@ -105,7 +105,7 @@ static int mount_points_list_get(MountPoint **head) { goto finish; } - if (mount_point_is_api(p)) { + if (mount_point_is_api(p) || mount_point_ignore(p)) { free(p); continue; } -- 2.30.2