summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@vrfy.org>2010-11-11 11:15:16 +0100
committerKay Sievers <kay.sievers@vrfy.org>2010-11-11 11:15:16 +0100
commit57f2a956e63d6b981b9d6277ab800ad4ad386f42 (patch)
treea93f3300e2d2bb799bb6490915f7a5d97b93f448
parentf54409d8b8a8dd3e43a450be5bbd78afdcb78c25 (diff)
downloadsystemd-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.c8
-rw-r--r--src/mount-setup.h1
-rw-r--r--src/mount.c2
-rw-r--r--src/umount.c2
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;
}