On Tue, Nov 06, 2012 at 02:07:18PM +0800, Gao feng wrote:
+static int
+virLXCControllerSetupFuse(virLXCControllerPtr ctrl)
+{
+ int try = 0;
+ virThread thread;
+ if (virThreadCreate(&thread, true, lxcRegisterFuse,
+ (void *)ctrl->def) < 0)
+ return -1;
+ /*
+ * because libvirt_lxc may use fuse filesystem before fuse being
+ * mounted by the thread. so wait 3 seconds in libvirt_lxc. if fuse
+ * is not mounted in 3 seconds, libvirt_lxc will exit.
+ */
+ while (try++ < 2) {
+ if (lxcRegisterFuseSuccess())
+ return 0;
+
+ sleep(1);
+ }
+
+ return -1;
+}
This code seems like it is bound to cause trouble. Can you explain
why the arbitrary wait is required here?
diff --git a/src/lxc/lxc_fuse.c b/src/lxc/lxc_fuse.c
new file mode 100644
index 0000000..42107d7
--- /dev/null
+++ b/src/lxc/lxc_fuse.c
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2012 Fujitsu Limited.
+ *
+ * lxc_fuse.c: fuse filesystem support for libvirt lxc
[...]
The basic empty directory fuse filesystem seems fine. I see
that patch 5/6 adds one(?) file to this directory, also fine.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
virt-top is 'top' for virtual machines. Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://et.redhat.com/~rjones/virt-top