X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=mount-setup.c;h=f3041941ac4326d070b1325a6a159c9f7da83cb2;hp=12605ebb4d158c9614be932f1b660b778c732ebb;hb=b9f49ee478fdc06c45092f208f1dddd23680ab13;hpb=055ba4d60e9539d5ec7cc66cc7a7ea3c0ce93679 diff --git a/mount-setup.c b/mount-setup.c index 12605ebb4..f3041941a 100644 --- a/mount-setup.c +++ b/mount-setup.c @@ -29,6 +29,8 @@ #include "mount-setup.h" #include "log.h" +#include "macro.h" +#include "util.h" enum { MOUNT_WHAT, @@ -39,12 +41,13 @@ enum { }; static const char *table[] = { - "proc", "/proc", "proc", "rw", - "sysfs", "/sys", "sysfs", "rw", - "devtmps", "/dev", "devtmpfs", "mode=755", - "tmpfs", "/dev/shm", "tmpfs", "mode=1777", - "devpts", "/dev/pts", "devpts", "rw", - "cgroup", "/cgroup/debug", "cgroup", "debug", + "proc", "/proc", "proc", NULL, + "sysfs", "/sys", "sysfs", NULL, + "devtmps", "/dev", "devtmpfs", "mode=755", + "tmpfs", "/dev/shm", "tmpfs", "mode=1777", + "devpts", "/dev/pts", "devpts", NULL, + "cgroup", "/cgroup/debug", "cgroup", "debug", + "debugfs", "/sys/kernel/debug", "debugfs", NULL, NULL }; @@ -85,11 +88,15 @@ static int mount_one(const char *t[]) { if (r > 0) return 0; + /* The access mode here doesn't really matter too much, since + * the mounted file system will take precedence anyway. */ + mkdir_p(t[MOUNT_WHERE], 0755); + log_debug("Mounting %s to %s of type %s with options %s.", t[MOUNT_WHAT], t[MOUNT_WHERE], t[MOUNT_TYPE], - t[MOUNT_OPTIONS]); + strna(t[MOUNT_OPTIONS])); if (mount(t[MOUNT_WHAT], t[MOUNT_WHERE],