diff options
Diffstat (limited to 'src/tmpfiles/tmpfiles.c')
-rw-r--r-- | src/tmpfiles/tmpfiles.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c index 55a6a7bb54..c4c6d8e693 100644 --- a/src/tmpfiles/tmpfiles.c +++ b/src/tmpfiles/tmpfiles.c @@ -174,7 +174,6 @@ static bool takes_ownership(ItemType t) { CREATE_CHAR_DEVICE, CREATE_BLOCK_DEVICE, COPY_FILES, - WRITE_FILE, IGNORE_PATH, IGNORE_DIRECTORY_PATH, @@ -314,16 +313,16 @@ static DIR* xopendirat_nomod(int dirfd, const char *path) { DIR *dir; dir = xopendirat(dirfd, path, O_NOFOLLOW|O_NOATIME); - if (!dir) { - log_debug_errno(errno, "Cannot open %sdirectory \"%s\": %m", - dirfd == AT_FDCWD ? "" : "sub", path); - if (errno == EPERM) { - dir = xopendirat(dirfd, path, O_NOFOLLOW); - if (!dir) - log_debug_errno(errno, "Cannot open %sdirectory \"%s\": %m", - dirfd == AT_FDCWD ? "" : "sub", path); - } - } + if (dir) + return dir; + + log_debug_errno(errno, "Cannot open %sdirectory \"%s\": %m", dirfd == AT_FDCWD ? "" : "sub", path); + if (errno != EPERM) + return NULL; + + dir = xopendirat(dirfd, path, O_NOFOLLOW); + if (!dir) + log_debug_errno(errno, "Cannot open %sdirectory \"%s\": %m", dirfd == AT_FDCWD ? "" : "sub", path); return dir; } |