diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c index 82d68254578..738f09a9633 100644 --- a/src/tmpfiles/tmpfiles.c +++ b/src/tmpfiles/tmpfiles.c @@ -1422,16 +1422,20 @@ static int path_set_acl( strna(t), pretty); if (!arg_dry_run && - sym_acl_set_file(path, type, dup) < 0) { - if (ERRNO_IS_NOT_SUPPORTED(errno)) + (r = RET_NERRNO(sym_acl_set_file(path, type, dup))) < 0) { + if (ERRNO_IS_NOT_SUPPORTED(r)) /* No error if filesystem doesn't support ACLs. Return negative. */ - return -errno; - else - /* Return positive to indicate we already warned */ - return -log_error_errno(errno, - "Setting %s ACL \"%s\" on %s failed: %m", - type == ACL_TYPE_ACCESS ? "access" : "default", - strna(t), pretty); + return r; + if (r == -EINVAL && running_in_chroot() > 0) + return log_warning_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), + "Setting %s ACL \"%s\" on %s failed. A chroot environment was detected, ignoring.", + type == ACL_TYPE_ACCESS ? "access" : "default", + strna(t), pretty); + /* Return positive to indicate we already warned */ + return -log_error_errno(r, + "Setting %s ACL \"%s\" on %s failed: %m", + type == ACL_TYPE_ACCESS ? "access" : "default", + strna(t), pretty); } return 0; }