summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-04-10 17:42:00 +0200
committerLennart Poettering <lennart@poettering.net>2010-04-10 18:00:33 +0200
commitdad08730c43807c5b9f9aa3f164c31997e66eea3 (patch)
treea2fa0a12d88bb1918e76a96a6bfc64a609992213
parent42856c1093c1644d31b83d7a131bfe4b061c5e4d (diff)
mount-setup: introduce mount_point_is_api() call
-rw-r--r--mount-setup.c20
-rw-r--r--mount-setup.h4
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