Bug in FUSE unmounting

Nathan Whitehorn nwhitehorn at freebsd.org
Wed Jul 24 03:31:33 UTC 2013


I ran across a bug in our FUSE port today. The unmount code in libfuse
(mount_bsd.c) uses umount -f to unmount a file system. To do this, it
looks up the device name corresponding to the process's communication
file descriptor, calls getdevname() on it, and then passes that to
umount. The problem here is that the device is always /dev/fuse (it
seems to assume there is a number on the end) and, as a result, it will
forcibly unmount *all* FUSE systems when trying just to unmount one.

Using the mountpoint instead seems to work for me, but a better solution
is called for.
-Nathan


More information about the freebsd-fs mailing list