diff options
author | Kay Sievers <kay.sievers@vrfy.org> | 2010-11-11 11:15:16 +0100 |
---|---|---|
committer | Kay Sievers <kay.sievers@vrfy.org> | 2010-11-11 11:15:16 +0100 |
commit | 57f2a956e63d6b981b9d6277ab800ad4ad386f42 (patch) | |
tree | a93f3300e2d2bb799bb6490915f7a5d97b93f448 | |
parent | f54409d8b8a8dd3e43a450be5bbd78afdcb78c25 (diff) | |
download | systemd-57f2a956e63d6b981b9d6277ab800ad4ad386f42.tar.gz |
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 <aj@novell.com> 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.
-rw-r--r-- | src/mount-setup.c | 8 | ||||
-rw-r--r-- | src/mount-setup.h | 1 | ||||
-rw-r--r-- | src/mount.c | 2 | ||||
-rw-r--r-- | src/umount.c | 2 |
4 files changed, 11 insertions, 2 deletions
diff --git a/src/mount-setup.c b/src/mount-setup.c index 84a729ebf2..9eb2832c6e 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 47d0e5bb12..150ec408d2 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 5d4944abec..4094eef43d 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 0081d979d9..2ae8f86ecd 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; } |