X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fmain.c;h=a041a22edaf819a44fa9186ab9ef38a35ab519d8;hp=cf54c7af42ef5a4493f4ecd8fdc30bc34a28648b;hb=b4353094e5097c0cb149b5adcffe2a6ba9240283;hpb=ed1c99fcc13f279eccf25fc20427eb92867da245 diff --git a/src/main.c b/src/main.c index cf54c7af4..a041a22ed 100644 --- a/src/main.c +++ b/src/main.c @@ -41,6 +41,7 @@ #include "kmod-setup.h" #include "locale-setup.h" #include "selinux-setup.h" +#include "machine-id-setup.h" #include "load-fragment.h" #include "fdset.h" #include "special.h" @@ -941,15 +942,12 @@ static void test_mtab(void) { } static void test_usr(void) { - struct stat a, b; bool separate = false; /* Check that /usr is not a separate fs */ - if (lstat("/", &a) >= 0 && lstat("/usr", &b) >= 0) - if (a.st_dev != b.st_dev) - separate = true; - + if (path_is_mount_point("/usr") > 0) + separate = true; /* This check won't work usually during boot, since /usr is * probably not mounted yet, hence let's add a second * check. We just check whether /usr is an empty directory. */ @@ -961,7 +959,8 @@ static void test_usr(void) { return; log_warning("/usr appears to be on a different file system than /. This is not supported anymore. " - "Some things will probably break (sometimes even silently) in mysterious ways."); + "Some things will probably break (sometimes even silently) in mysterious ways. " + "Consult http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken for more information."); } int main(int argc, char *argv[]) { @@ -1129,6 +1128,7 @@ int main(int argc, char *argv[]) { kmod_setup(); hostname_setup(); + machine_id_setup(); loopback_setup(); mkdir_p("/dev/.systemd/ask-password/", 0755);