+static int log_pid;
+
+/*
+ called when log data comes in from a child process
+ */
+static void ctdb_log_handler(struct event_context *ev, struct fd_event *fde,
+ uint16_t flags, void *private);
+
+static void ctdb_post_panic_logging(void)
+{
+ if (log_pid != getpid()) {
+ return;
+ }
+
+ if (log_state == NULL) {
+ return;
+ }
+
+ while (true) {
+ int ret;
+ int value = 0;
+
+ ret = ioctl(log_state->pfd, FIONREAD, &value);
+ if (ret == -1) {
+ break;
+ }
+
+ if (ret != 0) {
+ break;
+ }
+
+ if (value <= 0) {
+ break;
+ }
+
+ ctdb_log_handler(NULL, NULL, EVENT_FD_READ, log_state);
+ }
+}