From: Ian Jackson Date: Fri, 4 Sep 2009 15:17:39 +0000 (+0100) Subject: ignore xenstore events while paused X-Git-Tag: xen-4.0.0-rc1~38 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=8f09f47af0a074c97351b53c178267d670d24686;p=qemu-xen-4.0-testing.git 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 --- diff --git a/xenstore.c b/xenstore.c index 8222df4c..aee96f0f 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;