diff options
author | rmacklem <rmacklem@FreeBSD.org> | 2011-05-27 22:05:10 +0000 |
---|---|---|
committer | rmacklem <rmacklem@FreeBSD.org> | 2011-05-27 22:05:10 +0000 |
commit | 7d4b16f6f8f2a016827f64398c5a7f59247e56b3 (patch) | |
tree | 4ac25cf194121a23f96fba1eb360ebde0f255320 /usr.bin | |
parent | aa5140b7ec861ac2939b1db8b6aa22e74a58a1d7 (diff) | |
download | FreeBSD-src-7d4b16f6f8f2a016827f64398c5a7f59247e56b3.zip FreeBSD-src-7d4b16f6f8f2a016827f64398c5a7f59247e56b3.tar.gz |
Fix the new NFS client so that it handles NFSv4 state
correctly during a forced dismount. This required that
the exclusive and shared (refcnt) sleep lock functions check
for MNTK_UMOUNTF before sleeping, so that they won't block
while nfscl_umount() is getting rid of the state. As
such, a "struct mount *" argument was added to the locking
functions. I believe the only remaining case where a forced
dismount can get hung in the kernel is when a thread is
already attempting to do a TCP connect to a dead server
when the krpc client structure called nr_client is NULL.
This will only happen just after a "mount -u" with options
that force a new TCP connection is done, so it shouldn't
be a problem in practice.
MFC after: 2 weeks
Diffstat (limited to 'usr.bin')
0 files changed, 0 insertions, 0 deletions