mirror of
https://github.com/systemd/systemd
synced 2024-09-20 00:21:55 +00:00
journald: accept EPOLLERR from /dev/kmsg
Also print out unexpected epoll events explictly.
This commit is contained in:
parent
8097ab4f0c
commit
5843c5ebb4
Notes:
Lennart Poettering
2013-10-04 17:11:46 +02:00
Backport: bugfix
|
@ -1060,7 +1060,8 @@ int process_event(Server *s, struct epoll_event *ev) {
|
|||
ssize_t n;
|
||||
|
||||
if (ev->events != EPOLLIN) {
|
||||
log_error("Got invalid event from epoll.");
|
||||
log_error("Got invalid event from epoll for %s: %"PRIx32,
|
||||
"signal fd", ev->events);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
|
@ -1113,8 +1114,12 @@ int process_event(Server *s, struct epoll_event *ev) {
|
|||
} else if (ev->data.fd == s->dev_kmsg_fd) {
|
||||
int r;
|
||||
|
||||
if (ev->events != EPOLLIN) {
|
||||
log_error("Got invalid event from epoll.");
|
||||
if (ev->events & EPOLLERR)
|
||||
log_warning("/dev/kmsg buffer overrun, some messages lost.");
|
||||
|
||||
if (!(ev->events & EPOLLIN)) {
|
||||
log_error("Got invalid event from epoll for %s: %"PRIx32,
|
||||
"/dev/kmsg", ev->events);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
|
@ -1128,7 +1133,9 @@ int process_event(Server *s, struct epoll_event *ev) {
|
|||
ev->data.fd == s->syslog_fd) {
|
||||
|
||||
if (ev->events != EPOLLIN) {
|
||||
log_error("Got invalid event from epoll.");
|
||||
log_error("Got invalid event from epoll for %s: %"PRIx32,
|
||||
ev->data.fd == s->native_fd ? "native fd" : "syslog fd",
|
||||
ev->events);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
|
@ -1249,7 +1256,8 @@ int process_event(Server *s, struct epoll_event *ev) {
|
|||
} else if (ev->data.fd == s->stdout_fd) {
|
||||
|
||||
if (ev->events != EPOLLIN) {
|
||||
log_error("Got invalid event from epoll.");
|
||||
log_error("Got invalid event from epoll for %s: %"PRIx32,
|
||||
"stdout fd", ev->events);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
|
@ -1260,6 +1268,8 @@ int process_event(Server *s, struct epoll_event *ev) {
|
|||
StdoutStream *stream;
|
||||
|
||||
if ((ev->events|EPOLLIN|EPOLLHUP) != (EPOLLIN|EPOLLHUP)) {
|
||||
log_error("Got invalid event from epoll for %s: %"PRIx32,
|
||||
"stdout stream", ev->events);
|
||||
log_error("Got invalid event from epoll.");
|
||||
return -EIO;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue