From: Zbigniew Jędrzejewski-Szmek Date: Sun, 16 Sep 2012 10:35:46 +0000 (+0200) Subject: install: treat non-existent directory as empty X-Git-Tag: v190~76 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=d5891fdacf761130c9babdb5e50367504d29970c;p=elogind.git install: treat non-existent directory as empty When looking for symlinks, it doesn't make sense to error-out if the directory is missing. The user might delete an empty directory. This check caused test-unit-file to fail when run before installation. --- diff --git a/src/shared/install.c b/src/shared/install.c index 1a69337f5..0d38bccd7 100644 --- a/src/shared/install.c +++ b/src/shared/install.c @@ -524,8 +524,11 @@ static int find_symlinks( assert(same_name_link); fd = open(config_path, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW); - if (fd < 0) + if (fd < 0) { + if (errno == ENOENT) + return 0; return -errno; + } /* This takes possession of fd and closes it */ return find_symlinks_fd(name, fd, config_path, config_path, same_name_link); diff --git a/src/test/test-unit-file.c b/src/test/test-unit-file.c index b390c44b0..95e2b6801 100644 --- a/src/test/test-unit-file.c +++ b/src/test/test-unit-file.c @@ -40,7 +40,7 @@ int main(int argc, char *argv[]) { assert(h); r = unit_file_get_list(UNIT_FILE_SYSTEM, NULL, h); - log_info("%s", strerror(-r)); + log_info("unit_file_get_list: %s", strerror(-r)); assert(r >= 0); HASHMAP_FOREACH(p, h, i)