diff options
-rw-r--r-- | mount-setup.c | 20 | ||||
-rw-r--r-- | mount-setup.h | 4 |
2 files changed, 20 insertions, 4 deletions
diff --git a/mount-setup.c b/mount-setup.c index f3041941ac..8cb77669f3 100644 --- a/mount-setup.c +++ b/mount-setup.c @@ -48,9 +48,21 @@ static const char *table[] = { "devpts", "/dev/pts", "devpts", NULL, "cgroup", "/cgroup/debug", "cgroup", "debug", "debugfs", "/sys/kernel/debug", "debugfs", NULL, - NULL }; +bool mount_point_is_api(const char *path) { + unsigned i; + + /* Checks if this mount point is considered "API", and hence + * should be ignored */ + + for (i = 0; i < ELEMENTSOF(table); i += MOUNT_SKIP) + if (path_startswith(path, table[i+MOUNT_WHERE])) + return true; + + return false; +} + static int is_mount_point(const char *t) { struct stat a, b; char *copy; @@ -112,10 +124,10 @@ static int mount_one(const char *t[]) { int mount_setup(void) { int r; - const char **t; + unsigned i; - for (t = table; *t; t += MOUNT_SKIP) - if ((r = mount_one(t)) < 0) + for (i = 0; i < ELEMENTSOF(table); i += MOUNT_SKIP) + if ((r = mount_one(table + i)) < 0) return r; return 0; diff --git a/mount-setup.h b/mount-setup.h index df768de94f..bb13e0184e 100644 --- a/mount-setup.h +++ b/mount-setup.h @@ -22,6 +22,10 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +#include <stdbool.h> + int mount_setup(void); +bool mount_point_is_api(const char *path); + #endif |