X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Ftmpfiles%2Ftmpfiles.c;h=d60c57793b12872365b0c6ab234990889d7be1d4;hb=98940a3cd93807b5a3809bb1fb7ab43d450939f1;hp=45d31fb5d803c03d1c78efd9de66179759851efe;hpb=8d3d7072e609ef0e0fb37e1d19a29307d58146c3;p=elogind.git diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c index 45d31fb5d..d60c57793 100644 --- a/src/tmpfiles/tmpfiles.c +++ b/src/tmpfiles/tmpfiles.c @@ -291,9 +291,9 @@ static int dir_cleanup( /* FUSE, NFS mounts, SELinux might return EACCES */ if (errno == EACCES) - log_debug("stat(%s/%s) failed: %m", p, dent->d_name); + log_debug_errno(errno, "stat(%s/%s) failed: %m", p, dent->d_name); else - log_error("stat(%s/%s) failed: %m", p, dent->d_name); + log_error_errno(errno, "stat(%s/%s) failed: %m", p, dent->d_name); r = -errno; continue; } @@ -341,7 +341,7 @@ static int dir_cleanup( sub_dir = xopendirat(dirfd(d), dent->d_name, O_NOFOLLOW|O_NOATIME); if (!sub_dir) { if (errno != ENOENT) { - log_error("opendir(%s/%s) failed: %m", p, dent->d_name); + log_error_errno(errno, "opendir(%s/%s) failed: %m", p, dent->d_name); r = -errno; } @@ -374,7 +374,7 @@ static int dir_cleanup( if (unlinkat(dirfd(d), dent->d_name, AT_REMOVEDIR) < 0) { if (errno != ENOENT && errno != ENOTEMPTY) { - log_error("rmdir(%s): %m", sub_path); + log_error_errno(errno, "rmdir(%s): %m", sub_path); r = -errno; } } @@ -422,7 +422,7 @@ static int dir_cleanup( if (unlinkat(dirfd(d), dent->d_name, 0) < 0) { if (errno != ENOENT) { - log_error("unlink(%s): %m", sub_path); + log_error_errno(errno, "unlink(%s): %m", sub_path); r = -errno; } } @@ -438,7 +438,7 @@ finish: times[1] = ds->st_mtim; if (futimens(dirfd(d), times) < 0) - log_error("utimensat(%s): %m", p); + log_error_errno(errno, "utimensat(%s): %m", p); } return r; @@ -469,20 +469,18 @@ static int item_set_perms(Item *i, const char *path) { } if (!st_valid || m != (st.st_mode & 07777)) { - if (chmod(path, m) < 0) { - log_error("chmod(%s) failed: %m", path); - return -errno; - } + if (chmod(path, m) < 0) + return log_error_errno(errno, "chmod(%s) failed: %m", path); } } if ((!st_valid || (i->uid != st.st_uid || i->gid != st.st_gid)) && (i->uid_set || i->gid_set)) if (chown(path, - i->uid_set ? i->uid : (uid_t) -1, - i->gid_set ? i->gid : (gid_t) -1) < 0) { + i->uid_set ? i->uid : UID_INVALID, + i->gid_set ? i->gid : GID_INVALID) < 0) { - log_error("chown(%s) failed: %m", path); + log_error_errno(errno, "chown(%s) failed: %m", path); return -errno; } @@ -510,7 +508,7 @@ static int write_one_file(Item *i, const char *path) { if (i->type == WRITE_FILE && errno == ENOENT) return 0; - log_error("Failed to create file %s: %m", path); + log_error_errno(errno, "Failed to create file %s: %m", path); return -errno; } @@ -534,10 +532,8 @@ static int write_one_file(Item *i, const char *path) { fd = safe_close(fd); - if (stat(path, &st) < 0) { - log_error("stat(%s) failed: %m", path); - return -errno; - } + if (stat(path, &st) < 0) + return log_error_errno(errno, "stat(%s) failed: %m", path); if (!S_ISREG(st.st_mode)) { log_error("%s is not a file.", path); @@ -628,7 +624,7 @@ static int glob_item(Item *i, int (*action)(Item *, const char *)) { if (errno == 0) errno = EIO; - log_error("glob(%s) failed: %m", i->path); + log_error_errno(errno, "glob(%s) failed: %m", i->path); return -errno; } @@ -670,15 +666,11 @@ static int create_item(Item *i) { if (r != -EEXIST) return log_error_errno(r, "Failed to copy files to %s: %m", i->path); - if (stat(i->argument, &a) < 0) { - log_error("stat(%s) failed: %m", i->argument); - return -errno; - } + if (stat(i->argument, &a) < 0) + return log_error_errno(errno, "stat(%s) failed: %m", i->argument); - if (stat(i->path, &b) < 0) { - log_error("stat(%s) failed: %m", i->path); - return -errno; - } + if (stat(i->path, &b) < 0) + return log_error_errno(errno, "stat(%s) failed: %m", i->path); if ((a.st_mode ^ b.st_mode) & S_IFMT) { log_debug("Can't copy to %s, file exists already and is of different type", i->path); @@ -711,10 +703,8 @@ static int create_item(Item *i) { if (r != -EEXIST) return log_error_errno(r, "Failed to create directory %s: %m", i->path); - if (stat(i->path, &st) < 0) { - log_error("stat(%s) failed: %m", i->path); - return -errno; - } + if (stat(i->path, &st) < 0) + return log_error_errno(errno, "stat(%s) failed: %m", i->path); if (!S_ISDIR(st.st_mode)) { log_debug("%s already exists and is not a directory.", i->path); @@ -737,15 +727,11 @@ static int create_item(Item *i) { } if (r < 0) { - if (errno != EEXIST) { - log_error("Failed to create fifo %s: %m", i->path); - return -errno; - } + if (errno != EEXIST) + return log_error_errno(errno, "Failed to create fifo %s: %m", i->path); - if (stat(i->path, &st) < 0) { - log_error("stat(%s) failed: %m", i->path); - return -errno; - } + if (stat(i->path, &st) < 0) + return log_error_errno(errno, "stat(%s) failed: %m", i->path); if (!S_ISFIFO(st.st_mode)) { @@ -781,10 +767,8 @@ static int create_item(Item *i) { if (r < 0) { _cleanup_free_ char *x = NULL; - if (errno != EEXIST) { - log_error("symlink(%s, %s) failed: %m", i->argument, i->path); - return -errno; - } + if (errno != EEXIST) + return log_error_errno(errno, "symlink(%s, %s) failed: %m", i->argument, i->path); r = readlink_malloc(i->path, &x); if (r < 0 || !streq(i->argument, x)) { @@ -834,15 +818,11 @@ static int create_item(Item *i) { return 0; } - if (errno != EEXIST) { - log_error("Failed to create device node %s: %m", i->path); - return -errno; - } + if (errno != EEXIST) + return log_error_errno(errno, "Failed to create device node %s: %m", i->path); - if (stat(i->path, &st) < 0) { - log_error("stat(%s) failed: %m", i->path); - return -errno; - } + if (stat(i->path, &st) < 0) + return log_error_errno(errno, "stat(%s) failed: %m", i->path); if ((st.st_mode & S_IFMT) != file_type) { @@ -916,10 +896,8 @@ static int remove_item_instance(Item *i, const char *instance) { break; case REMOVE_PATH: - if (remove(instance) < 0 && errno != ENOENT) { - log_error("remove(%s): %m", instance); - return -errno; - } + if (remove(instance) < 0 && errno != ENOENT) + return log_error_errno(errno, "remove(%s): %m", instance); break; @@ -993,24 +971,20 @@ static int clean_item_instance(Item *i, const char* instance) { if (errno == ENOENT || errno == ENOTDIR) return 0; - log_error("Failed to open directory %s: %m", i->path); + log_error_errno(errno, "Failed to open directory %s: %m", i->path); return -errno; } - if (fstat(dirfd(d), &s) < 0) { - log_error("stat(%s) failed: %m", i->path); - return -errno; - } + if (fstat(dirfd(d), &s) < 0) + return log_error_errno(errno, "stat(%s) failed: %m", i->path); if (!S_ISDIR(s.st_mode)) { log_error("%s is not a directory.", i->path); return -ENOTDIR; } - if (fstatat(dirfd(d), "..", &ps, AT_SYMLINK_NOFOLLOW) != 0) { - log_error("stat(%s/..) failed: %m", i->path); - return -errno; - } + if (fstatat(dirfd(d), "..", &ps, AT_SYMLINK_NOFOLLOW) != 0) + return log_error_errno(errno, "stat(%s/..) failed: %m", i->path); mountpoint = s.st_dev != ps.st_dev || (s.st_dev == ps.st_dev && s.st_ino == ps.st_ino); @@ -1564,7 +1538,7 @@ static int read_config_file(const char *fn, bool ignore_enoent) { } if (ferror(f)) { - log_error("Failed to read from file %s: %m", fn); + log_error_errno(errno, "Failed to read from file %s: %m", fn); if (r == 0) r = -EIO; }