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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list