freebsd-skq/sys/nfs
rmacklem 396df4f3c4 Add kernel support for the NFS client forced dismount "umount -N" option.
When an NFS mount is hung against an unresponsive NFS server, the "umount -f"
option can be used to dismount the mount. Unfortunately, "umount -f" gets
hung as well if a "umount" without "-f" has already been done. Usually,
this is because of a vnode lock being held by the "umount" for the mounted-on
vnode.
This patch adds kernel code so that a new "-N" option can be added to "umount",
allowing it to avoid getting hung for this case.
It adds two flags. One indicates that a forced dismount is about to happen
and the other is used, along with setting mnt_data == NULL, to handshake
with the nfs_unmount() VFS call.
It includes a slight change to the interface used between the client and
common NFS modules, so I bumped __FreeBSD_version to ensure both modules are
rebuilt.

Tested by:	pho
Reviewed by:	kib
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D11735
2017-07-29 19:52:47 +00:00
..
bootp_subr.c
krpc_subr.c
krpc.h
nfs_common.h
nfs_diskless.c
nfs_fha.c
nfs_fha.h
nfs_kdtrace.h
nfs_lock.c
nfs_lock.h
nfs_mountcommon.h
nfs_nfssvc.c
nfsdiskless.h
nfsproto.h
nfssvc.h
xdr_subs.h