于 2012年11月06日 20:55, Richard W.M. Jones 写道: > On Tue, Nov 06, 2012 at 07:50:33PM +0800, Gao feng wrote: >> 于 2012年11月06日 17:11, Richard W.M. Jones 写道: >>> On Tue, Nov 06, 2012 at 04:54:59PM +0800, Gao feng wrote: >>>> Because libvirt_lxc create a thread to mount fuse filesystem. >>>> and then libvirt_lxc will try to access the fuse filesystem. >>>> >>>> Without waiting,libvirt_lxc may access fuse before it is mounted. >>>> >>>> And I can't find a better way to make accessing fuse after the fuse >>>> being mounted,because fuse_main will return until fuse being unmounted,so >>>> I don't know how to pass message to tell libvirt_lxc whether the fuse is >>>> mounted success. >>> >>> Oh I see. This is solvable, but I believe that you cannot use >>> fuse_main. You have to look at the fuse sources (quite complex!) and >>> do the individual fuse operations. >>> >>> Have a look at how libguestfs does it ... >>> >>> https://github.com/libguestfs/libguestfs/blob/master/src/fuse.c#L911 >>> http://libguestfs.org/guestfs.3.html#mount-local >>> >> >> >> Thanks for the information. >> >> Can fuse_mount & fuse_new & fuse_loop avoid the waiting? >> >> It seems has the same problem. > > It waits, but it doesn't busy wait in a loop. The first access to the > filesystem hangs until the thread which is handling the filesystem is > listening for requests. > It makes me confuse. There are two threads(A and B). thread A mounts fuse filesystem on mountpoint /mnt/fuse. thread B try to access file /mnt/fuse/meminfo. and we don't know which thread will execute first. The information I got from your comment is that because thread A doesn't mount fuse to /mnt/fuse, when thread B access to the /mnt/fuse/meminfo,it will hang. I am right? If I am right,I don't think this can be implemented by fuse. because the access of fuse file will make a fuse session message, if thread A doesn't call fuse_session_receive_buf to receive this message, The access of the fuse file will failed,not hang. Maybe I misunderstand something. Can you explain this for me? Thanks! -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list