Description of Problem:
exportfs -u fails to unexport a previously exported filesystem
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. add "/mnt/cdrom *" to /etc/exports
2. exportfs -a
3. on client, "mount server:/mnt/cdrom /mnt/s-cdrom"
4. on client, "du /mnt/s-cdrom"
5. on client, "umount /mnt/s-cdrom"
6. on server, "exportfs -u client:/home/test"
7. on server, "umount /mnt/cdrom"
step 7 fails because step 6 actually failed to remove the entry from the
kernel's table, so the kernel still has (presumably the root inode) still
open, preventing the umount from succeeding
step 7 should succeed, because step 6 should tell the kernel to let go
If (after step 7) you comment out the line added in step 1, then execute
"exportfs -r", re-executing step 7 works as expected, so there is something
done correctly by the "-r" path that is not being done in the "-u" path.
It appears as if mountd is honoring UMOUNT requests from clients, but not
notifying the server's kernel that the exported directory is no longer in use.
This is also reflected in /var/lib/nfs/rmtab, which is supposed to list those
file systems which mountd currently thinks are mounted by clients.
Your workaround ("exportfs -r") must force rpc.mountd to rebuild it's list and
notify the kernel.
I will notify the nfs-utils maintainers.
This defect is considered SHOULD-FIX for Fairfax.
The bug fell over the horizon due to manpower constraints, closing.
If Fedora still fails to unexport, please refile.