/etc/init.d/rpc.pipefs does not unmount /var/lib/nfs/rpc_pipefs on stop. In my case this causes errors when /etc/init.d/zfs wants to unmount /var, which it can't because it is still in use by /var/lib/nfs/rpc_pipefs. Reproducible: Always Steps to Reproduce: 1. Have /var on zfs, started by /etc/init.d/zfs. I guess any other filesystem would have the same issue, except when it is on your root filesystem. 2. Start NFS, which causes rpc.pipefs to startup 3. Issue a reboot command to the machine 4. eventually /etc/init.d/rpc.pipefs will be called to stop 5. /etc/init.d/zfs will be called to stop Actual Results: Step 5 will produce a message it cannot unmount because /var is still busy. Expected Results: /etc/init.d/rpc.pipefs should have unmounted anything it mounted in the start-action. Adding the following section to /etc/init.d/rpc.pipefs fixes it for me. stop() { umount -a -t rpc_pipefs } I'm not sure about the severity, but I have some issues with ZFS coming back into a state I did not expect, and am ruling out all obvious errors and warnings first.
if /etc/init.d/zfs wants to umount /var, then it needs to handle when things are mounted under there. if it doesn't, then it is broken, and it's not the fault of nfs-utils. there are number of pseudo filesystems that the nfs init scripts mount. none of them get unmounted. i'm not sure they should be unmounted. rpc.pipefs does have its own init.d script and other services depend on it. so maybe having it unmount in this one case wouldn't be a big deal.
should be all set now in the tree; thanks for the report! Commit message: Unmount rpc.pipefs on stop as it is in /var http://sources.gentoo.org/net-fs/nfs-utils/files/rpc.pipefs.initd?r1=1.2&r2=1.3