freebsd-dev/sys/fs/nfsclient
Rick Macklem 47cbff34fa 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
..
nfs_clbio.c Replace the checks for MNTK_UNMOUNTF with a macro that does the same thing. 2017-07-27 20:55:31 +00:00
nfs_clcomsubs.c Add two new compound RPCs to the NFSv4.1/pNFS client. 2017-06-24 20:01:21 +00:00
nfs_clkdtrace.c NFS: spelling fixes on comments. 2016-04-29 16:07:25 +00:00
nfs_clkrpc.c Add call to svcpool_close() for the NFSv4 callback pool (svcpool_nfscbd). 2017-04-13 20:16:29 +00:00
nfs_clnfsiod.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
nfs_clnode.c Add support to the NFSv4.1/pNFS client for commits through the DS. 2017-06-26 00:43:04 +00:00
nfs_clport.c Add kernel support for the NFS client forced dismount "umount -N" option. 2017-07-29 19:52:47 +00:00
nfs_clrpcops.c Fix possible crash for the NFSv4.1 pNFS client. 2017-07-29 02:25:49 +00:00
nfs_clstate.c Replace the checks for MNTK_UNMOUNTF with a macro that does the same thing. 2017-07-27 20:55:31 +00:00
nfs_clsubs.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
nfs_clvfsops.c Add kernel support for the NFS client forced dismount "umount -N" option. 2017-07-29 19:52:47 +00:00
nfs_clvnops.c Replace the checks for MNTK_UNMOUNTF with a macro that does the same thing. 2017-07-27 20:55:31 +00:00
nfs_kdtrace.h - Nuke a second copy of nfscl_attrcache extern declarations from under 2013-11-26 22:41:40 +00:00
nfs.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
nfsmount.h Add kernel support for the NFS client forced dismount "umount -N" option. 2017-07-29 19:52:47 +00:00
nfsnode.h Add support to the NFSv4.1/pNFS client for commits through the DS. 2017-06-26 00:43:04 +00:00
nlminfo.h