summaryrefslogtreecommitdiff
path: root/src/tmpfiles
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2012-11-02 15:05:31 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-03-17 01:55:47 -0400
commit6cf487afad4ef4706b5d6d9ba5df24cac68e687a (patch)
tree0a4e37b9a937db6bc2ca81785105599dd625df30 /src/tmpfiles
parentd18d46ecea80a7f07415edb9264af6a254fd70bb (diff)
shared: export is_dir
Diffstat (limited to 'src/tmpfiles')
-rw-r--r--src/tmpfiles/tmpfiles.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
index 52f80379e3..74a01271e9 100644
--- a/src/tmpfiles/tmpfiles.c
+++ b/src/tmpfiles/tmpfiles.c
@@ -542,7 +542,7 @@ static int recursive_relabel_children(Item *i, const char *path) {
for (;;) {
struct dirent *de;
- bool is_dir;
+ bool dir;
int r;
_cleanup_free_ char *entry_path = NULL;
@@ -567,18 +567,17 @@ static int recursive_relabel_children(Item *i, const char *path) {
}
if (de->d_type == DT_UNKNOWN) {
- struct stat st;
-
- if (lstat(entry_path, &st) < 0) {
+ r = is_dir(entry_path);
+ if (r < 0) {
if (ret == 0 && errno != ENOENT)
ret = -errno;
continue;
}
- is_dir = S_ISDIR(st.st_mode);
+ dir = r;
} else
- is_dir = de->d_type == DT_DIR;
+ dir = de->d_type == DT_DIR;
r = item_set_perms(i, entry_path);
if (r < 0) {
@@ -587,7 +586,7 @@ static int recursive_relabel_children(Item *i, const char *path) {
continue;
}
- if (is_dir) {
+ if (dir) {
r = recursive_relabel_children(i, entry_path);
if (r < 0 && ret == 0)
ret = r;