From: Lennart Poettering Date: Sat, 10 Apr 2010 15:42:00 +0000 (+0200) Subject: mount-setup: introduce mount_point_is_api() call X-Git-Tag: v1~567 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=dad08730c43807c5b9f9aa3f164c31997e66eea3 mount-setup: introduce mount_point_is_api() call --- diff --git a/mount-setup.c b/mount-setup.c index f3041941a..8cb77669f 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 df768de94..bb13e0184 100644 --- a/mount-setup.h +++ b/mount-setup.h @@ -22,6 +22,10 @@ along with systemd; If not, see . ***/ +#include + int mount_setup(void); +bool mount_point_is_api(const char *path); + #endif