summaryrefslogtreecommitdiff
path: root/src/basic/fs-util.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/basic/fs-util.c')
-rw-r--r--src/basic/fs-util.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/src/basic/fs-util.c b/src/basic/fs-util.c
index 5a3f8b827f..7dfc1b309d 100644
--- a/src/basic/fs-util.c
+++ b/src/basic/fs-util.c
@@ -359,13 +359,7 @@ int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gi
* something fchown(), fchmod(), futimensat() don't allow. */
xsprintf(fdpath, "/proc/self/fd/%i", fd);
- if (mode != MODE_INVALID)
- if (chmod(fdpath, mode) < 0)
- ret = -errno;
-
- if (uid_is_valid(uid) || gid_is_valid(gid))
- if (chown(fdpath, uid, gid) < 0 && ret >= 0)
- ret = -errno;
+ ret = fchmod_and_chown(fd, mode, uid, gid);
if (stamp != USEC_INFINITY) {
struct timespec ts[2];