From: Miklos S. <mi...@sz...> - 2007-04-11 09:35:24
|
> I'm wondering what fuse does when I umount a filesystem? > > My problem is that I want to write out a last mounted time, mark > the FS as cleanly shutdown and make sure all buffers are properly > synced to the physical medium and such. > > In the code I have so far it seems like the program just exists on > umount without a callback getting invoked. Is that true? The destroy callback will be called. But currently this done asynchronously with the umount() syscall, which means, umount may return _before_ ->destroy() returns. This is problematic in case the physical medium is removed immediately after umount(). So this will be addressed in fuse in the following way: - destroy() method is already synchronous if "blkdev" mount option is specified. This is however a privileged option - destroy() method will be synchronous for unprivileged mounts without "blkdev", if the umount was called by the owner (the user who performed the mount). If umount is called by root, destroy() remains asynchronous for security reasons. - destroy() will be synchronous for privileged mounts without "blkdev" Miklos |