Why won't 8.2 umount -f?

Rick Macklem rmacklem at uoguelph.ca
Tue Feb 14 02:23:40 UTC 2012


Doug Barton wrote:
> Is there some magic I'm missing to convince an 8.2 system to umount
> -f?
> I had an NFS server crash, so I'm trying to get the mounts updated.
> All
> of the 7.x systems happily did 'umount -f', but the 8.x systems
> (mostly
> 8.2-pN) are just hanging forever.
> 
> Is this a bug, or is it something I'm missing?
> 
Well, I didn't realize that a 7.n system would "umount -f" an NFS
mount when the server was down and there were dirty blocks that
needed to be written back, but I don't know. (I seem to recall that
someone encouraged me to MFC one of my changes related to this back
to stable/7, but I'm not sure if it mattered?)

I have pretty well fixed the new client w.r.t. this except for the
case where you do a "umount <path>" and that gets hung. Once a non "-f"
umount gets hung, there is nothing you can do, because the mount point is
locked up, so a subsequent "umount -f" can't get as far as nfs_umount().

My guess is that the old (default for 8.n) client isn't fixed for
this. If you "grep MNTK_UNMOUNTF" in the sources, you'll see it
used some in the old/regular client, but not as much as the new one.

You also need a fairly recent (can't remember if that is in 8.2)
version of umount.c, since the code had a "sync();" at the beginning
of it that would hang before even getting to the umount(2) syscall.

Bottom line, I think the newnfs client (the default for 9.0) can
do this, but I'm doubtful the old/reguler one can. (I also wouldn't
be surprised if there is still a bug other than the above mentioned
one w.r.t. doing a "umount /mnt" and getting that hung before trying
"umount -f /mnt".

rick

> 
> Doug
> 
> --
> 
> It's always a long day; 86400 doesn't fit into a short.
> 
> Breadth of IT experience, and depth of knowledge in the DNS.
> Yours for the right price. :) http://SupersetSolutions.com/
> 
> _______________________________________________
> freebsd-stable at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to
> "freebsd-stable-unsubscribe at freebsd.org"


More information about the freebsd-fs mailing list