if (_likely_(e->perturb != USEC_INFINITY))
return;
- if (sd_id128_get_boot(&id) >= 0 || sd_id128_get_machine(&id) > 0)
+ if (sd_id128_get_boot(&id) >= 0 || sd_id128_get_machine(&id) >= 0)
e->perturb = (id.qwords[0] ^ id.qwords[1]) % USEC_PER_MINUTE;
else
e->perturb = 0; /* This is a super early process without /proc and /etc ?? */
_cleanup_(source_freep) sd_event_source *s = NULL;
_cleanup_close_ int path_fd = -1, fd = -1;
_cleanup_free_ void *write_buffer = NULL;
- const char *watch, *watch_fallback, *env;
+ const char *watch, *watch_fallback = NULL, *env;
size_t write_buffer_size = 0;
struct stat st;
uint32_t events;
return locked ? -ENOENT : -EOPNOTSUPP;
path_fd = open(watch_fallback, O_PATH|O_CLOEXEC);
- if (errno == ENOENT) /* PSI is not available in the kernel even under the fallback path? */
- return -EOPNOTSUPP;
- if (errno < 0)
+ if (path_fd < 0) {
+ if (errno == ENOENT) /* PSI is not available in the kernel even under the fallback path? */
+ return -EOPNOTSUPP;
return -errno;
+ }
}
if (fstat(path_fd, &st) < 0)