> [...] for perfused(8) a few years ago. See section 3.3 of my > EuroBSDcon paper if you are curious of the details. > http://hcpnet.free.fr/pubz/fuse.pdf
Heh. Reading that reminds me of my own run-ins with puffs. I implemented a gitfs (present git repos as a filesystem) using puffs, only to find it deadlocking the machine. It wasn't quite your deadlock, but was related; my deadlock looked more like, puffs request leads daemon to fork git, git tries to access (local FFS) filesystem, FFS code wants a new vnode, VFS code tries to clean a vnode and picks a puffs vnode (which the daemon can't do anything with because it's waiting for git). I then made the daemon more asynchronous; then, it wound up locking up the machine in a more obscure way I still don't really understand. I've given up on puffs (though it sounds as though your work improved it significantly in these regards - I was/am using the 5.2 version); one of my back-burner projects is to build a library that, essentially, reimplements parts of the filesystem machinery (notably mount points) in userspace, so my HTTP and FTP daemons can present something that looks like a gitfs mount point to their clients. /~\ The ASCII Mouse \ / Ribbon Campaign X Against HTML mo...@rodents-montreal.org / \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B