chiark / gitweb /
sysv: do not add sysv services that are not enabled in /etc/rcN.d/ to network.target...
[elogind.git] / src / mount-setup.c
index 889cf67eb5e7afea07a5ea48ac7dacd6c75ac00e..6b0539bf97cf8f6041d46044889e8b6065bf842c 100644 (file)
@@ -42,12 +42,23 @@ typedef struct MountPoint {
 } MountPoint;
 
 static const MountPoint mount_table[] = {
-        { "proc",        "/proc",                    "proc",        NULL,                MS_NOSUID|MS_NOEXEC|MS_NODEV, true },
-        { "sysfs",       "/sys",                     "sysfs",       NULL,                MS_NOSUID|MS_NOEXEC|MS_NODEV, true },
-        { "devtmps",     "/dev",                     "devtmpfs",    "mode=755",          MS_NOSUID,                    true },
-        { "tmpfs",       "/dev/shm",                 "tmpfs",       "mode=1777",         MS_NOSUID|MS_NOEXEC|MS_NODEV, true },
-        { "devpts",      "/dev/pts",                 "devpts",      NULL,                MS_NOSUID|MS_NOEXEC|MS_NODEV, false },
-        { "cgroup",      "/cgroup/systemd",          "cgroup",      "none,name=systemd", MS_NOSUID|MS_NOEXEC|MS_NODEV, true },
+        { "proc",     "/proc",           "proc",     NULL,                MS_NOSUID|MS_NOEXEC|MS_NODEV, true },
+        { "sysfs",    "/sys",            "sysfs",    NULL,                MS_NOSUID|MS_NOEXEC|MS_NODEV, true },
+        { "devtmpfs", "/dev",            "devtmpfs", "mode=755",          MS_NOSUID,                    true },
+        { "tmpfs",    "/dev/shm",        "tmpfs",    "mode=1777",         MS_NOSUID|MS_NOEXEC|MS_NODEV, true },
+        { "devpts",   "/dev/pts",        "devpts",   NULL,                MS_NOSUID|MS_NOEXEC|MS_NODEV, false },
+        { "tmpfs",    "/cgroup",         "tmpfs",    "mode=755",          MS_NOSUID|MS_NOEXEC|MS_NODEV, true },
+        { "cgroup",   "/cgroup/systemd", "cgroup",   "none,name=systemd", MS_NOSUID|MS_NOEXEC|MS_NODEV, true },
+};
+
+/* These are API file systems that might be mounted by other software,
+ * we just list them here so that we know that we should igore them */
+
+static const char * const ignore_paths[] = {
+        "/selinux",
+        "/proc/bus/usb",
+        "/var/lib/nfs/rpc_pipefs",
+        "/proc/fs/nfsd"
 };
 
 bool mount_point_is_api(const char *path) {
@@ -60,6 +71,10 @@ bool mount_point_is_api(const char *path) {
                 if (path_startswith(path, mount_table[i].where))
                         return true;
 
+        for (i = 0; i < ELEMENTSOF(ignore_paths); i++)
+                if (path_startswith(path, ignore_paths[i]))
+                        return true;
+
         return path_startswith(path, "/cgroup/");
 }