WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] Recreate watches on domain restore.

# HG changeset patch
# User cl349@xxxxxxxxxxxxxxxxxxxx
# Node ID 8203b7d536d32cb27f810db478e58ae57faa446c
# Parent  27a4a073fc753d8410424c261bc06699573fe1c8
Recreate watches on domain restore.
Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxx>

diff -r 27a4a073fc75 -r 8203b7d536d3 
linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c
--- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c    Wed Aug 17 
10:18:13 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c    Wed Aug 17 
10:18:34 2005
@@ -309,6 +309,7 @@
 void xenbus_resume(void)
 {
        xb_init_comms();
+       reregister_xenbus_watches();
        up(&xenbus_lock);
 }
 
diff -r 27a4a073fc75 -r 8203b7d536d3 
linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c
--- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c       Wed Aug 17 
10:18:13 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_xs.c       Wed Aug 17 
10:18:34 2005
@@ -496,6 +496,18 @@
                       watch->node, err);
 }
 
+/* Re-register callbacks to all watches. */
+void reregister_xenbus_watches(void)
+{
+       struct xenbus_watch *watch;
+       char token[sizeof(watch) * 2 + 1];
+
+       list_for_each_entry(watch, &watches, list) {
+               sprintf(token, "%lX", (long)watch);
+               xs_watch(watch->node, token);
+       }
+}
+
 static int watch_thread(void *unused)
 {
        for (;;) {
diff -r 27a4a073fc75 -r 8203b7d536d3 
linux-2.6-xen-sparse/include/asm-xen/xenbus.h
--- a/linux-2.6-xen-sparse/include/asm-xen/xenbus.h     Wed Aug 17 10:18:13 2005
+++ b/linux-2.6-xen-sparse/include/asm-xen/xenbus.h     Wed Aug 17 10:18:34 2005
@@ -121,6 +121,7 @@
 
 int register_xenbus_watch(struct xenbus_watch *watch);
 void unregister_xenbus_watch(struct xenbus_watch *watch);
+void reregister_xenbus_watches(void);
 
 /* Called from xen core code. */
 void xenbus_suspend(void);

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] Recreate watches on domain restore., Xen patchbot -unstable <=