X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Fbase-filesystem.c;h=4c65a495d3596a6732b0499ad0739aeee57322fa;hb=b5884878a2874447b2a9f07f324a7cd909d96d48;hp=addd26ca39d1980b455c328ed27c37c7d16c480a;hpb=30d7c9c472bd7be1b6a09d3bd5afd939988de990;p=elogind.git diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c index addd26ca3..4c65a495d 100644 --- a/src/shared/base-filesystem.c +++ b/src/shared/base-filesystem.c @@ -58,16 +58,17 @@ int base_filesystem_create(const char *root) { int r; fd = open(root, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW); - if (fd < 0) + if (fd < 0) { + log_error("Failed to open root file system: %m"); return -errno; + } for (i = 0; i < ELEMENTSOF(table); i ++) { - if (table[i].target) { - const char *target = NULL; - const char *s; + if (faccessat(fd, table[i].dir, F_OK, AT_SYMLINK_NOFOLLOW) >= 0) + continue; - if (faccessat(fd, table[i].dir, F_OK, AT_SYMLINK_NOFOLLOW) >= 0) - continue; + if (table[i].target) { + const char *target = NULL, *s; /* check if one of the targets exists */ NULSTR_FOREACH(s, table[i].target) {