From 8f09f47af0a074c97351b53c178267d670d24686 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 4 Sep 2009 16:17:39 +0100 Subject: [PATCH] ignore xenstore events while paused when qemu is paused it shouldn't try to handle xenstore events, especially because when xend removes nodes on xenstore some spurious events could be generated causing qemu to exit unexpectedly. Signed-off-by: Stefano Stabellini --- xenstore.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/xenstore.c b/xenstore.c index 8222df4cc..aee96f0fe 100644 --- a/xenstore.c +++ b/xenstore.c @@ -921,6 +921,16 @@ void xenstore_process_event(void *opaque) if (!vec) return; + /* process dm-command events before everything else */ + if (!strcmp(vec[XS_WATCH_TOKEN], "dm-command")) { + xenstore_process_dm_command_event(); + goto out; + } + + /* if we are paused don't process anything else */ + if (xen_pause_requested) + goto out; + for (i = 0; xenstore_watch_callbacks && xenstore_watch_callbacks[i].path; i++) if (xenstore_watch_callbacks[i].cb && !strcmp(vec[XS_WATCH_TOKEN], xenstore_watch_callbacks[i].path)) @@ -932,11 +942,6 @@ void xenstore_process_event(void *opaque) goto out; } - if (!strcmp(vec[XS_WATCH_TOKEN], "dm-command")) { - xenstore_process_dm_command_event(); - goto out; - } - if (strncmp(vec[XS_WATCH_TOKEN], "hd", 2) || strlen(vec[XS_WATCH_TOKEN]) != 3) goto out; -- 2.39.5