Before:
====
$ systemctl edit network.target
Failed to create directories for "/etc/systemd/system/network.target.d/override.conf": No such file or directory
====
After:
====
$ systemctl edit network.target
Failed to create directories for "/etc/systemd/system/network.target.d/override.conf": Permission denied
====
Fixes #26652.
assert(mode != MODE_INVALID);
assert(_mkdirat && _mkdirat != mkdirat);
- if (_mkdirat(dir_fd, path, mode) >= 0) {
+ r = _mkdirat(dir_fd, path, mode);
+ if (r >= 0) {
r = chmod_and_chown_at(dir_fd, path, mode, uid, gid);
if (r < 0)
return r;
}
+ if (r != -EEXIST)
+ return r;
if (fstatat(dir_fd, path, &st, AT_SYMLINK_NOFOLLOW) < 0)
return -errno;