|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH for-4.9] tools/xenconsoled: Preserve errno while rotating logfile handles
The logic to optionally exit after a poll() error relies on errno, but
handle_log_reload() does not preserve it.
Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
CC: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
CC: Wei Liu <wei.liu2@xxxxxxxxxx>
CC: Julien Grall <julien.grall@xxxxxxx>
For some reason which we haven't tracked down completely yet, an NTP time step
appears to reliably cause xenconsoled to exit, citing "Failure in poll
xs_handle: %d (%s)" with ENOENT. The NTP time step almost certainly results
in log rotation, but I haven't identifed where the ENOENT came from.
---
tools/console/daemon/io.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tools/console/daemon/io.c b/tools/console/daemon/io.c
index 7e6a886..7e474bb 100644
--- a/tools/console/daemon/io.c
+++ b/tools/console/daemon/io.c
@@ -1117,8 +1117,12 @@ void handle_io(void)
ret = poll(fds, nr_fds, next_timeout ? poll_timeout : -1);
if (log_reload) {
+ int saved_errno = errno;
+
handle_log_reload();
log_reload = 0;
+
+ errno = saved_errno;
}
/* Abort if poll failed, except for EINTR cases
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |