freebsd-skq/sys/fs/nfs
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_commonacl.c Cleanup unnecessary semicolons from the kernel. 2016-04-10 23:07:00 +00:00
nfs_commonkrpc.c Replace the checks for MNTK_UNMOUNTF with a macro that does the same thing. 2017-07-27 20:55:31 +00:00
nfs_commonport.c Add support for AF_LOCAL socket upcalls to the nfsuserd daemon. 2017-07-06 00:53:12 +00:00
nfs_commonsubs.c Replace the checks for MNTK_UNMOUNTF with a macro that does the same thing. 2017-07-27 20:55:31 +00:00
nfs_var.h Add support for AF_LOCAL socket upcalls to the nfsuserd daemon. 2017-07-06 00:53:12 +00:00
nfs.h Fix the NFS client/server so that it actually uses the 64bit ino_t filenos. 2017-06-18 21:48:31 +00:00
nfscl.h Add kernel support for the NFS client forced dismount "umount -N" option. 2017-07-29 19:52:47 +00:00
nfsclstate.h Fix NFSv4.1 client recovery from NFS4ERR_BAD_SESSION errors. 2016-12-23 23:14:53 +00:00
nfsdport.h Make the size of the hash tables used by the NFSv4 server tunable. 2015-05-27 22:00:05 +00:00
nfskpiport.h
nfsm_subs.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
nfsport.h Add two new compound RPCs to the NFSv4.1/pNFS client. 2017-06-24 20:01:21 +00:00
nfsproto.h Add two new compound RPCs to the NFSv4.1/pNFS client. 2017-06-24 20:01:21 +00:00
nfsrvcache.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
nfsrvstate.h NFS: spelling fixes on comments. 2016-04-29 16:07:25 +00:00
nfsv4_errstr.h
rpcv2.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
xdr_subs.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00