From: <Mik...@et...> - 2004-01-06 10:10:41
|
> > It can work two ways: > > > > 1) It opens the fuse communication device, mounts a fuse filesystem > > and starts a filesystem daemon given on the command line passing > > it the fuse communication file descriptor as stdin (0) > > does this mean I have to remove the fuse_mount() call and use 0 instead of > fuse_fd in the code you can see below ? Yes, if you want to use this method, but as I said this is deprecated, and I use it just for testing purposes. > > 2) The filesystem daemon invokes fusermount which opens the fuse > > communication device, mounts the filesystem and passes the > > communication file descriptor to the invoking program through a > > UNIX domain socket. > > Currently our "filesystem daemon" does the following: > > int fuse_fd = fuse_mount(mount_point.path().latin1(), 0); > fuse_handle = fuse_new(fuse_fd, 0, &ops); > if (fuse_handle==0) > kdDebug()<<"fuse_new() failed"<<endl; > fuseApp = new FuseApp(base_url); > set_signal_handlers(); > fuse_loop(fuse_handle); > close(fuse_fd); > fuse_unmount(mount_point.path().latin1()); > > Is this what you describe here ? Exactly. > I saw in an email from the mailing list that you just added an option > >>>OK, so a new option for fusermount is needed, e.g.: > >>> fusermount -d xyz /mnt > >>>will insert the following line into the mtab: > >>> xyz /mnt ... > >>>Does this sound OK? > > to fusermount. If our daemon works the way as it does now, is there a way to > use this option ? You can use the 'args' parameter of fuse_mount(): const char *args[] = { "-d", "xyz", NULL }; int fuse_fd = fuse_mount(mount_point.path().latin1(), args); This should work (though not tested). > When I run our daemon and mount an ioslave, the daemon exits with an error > message when I umount it with fusermount -u mountpoint. Is this ok ? Yes. I'll look at the code to see if this can be improved. Miklos |