freebsd-nq/sys
Rick Macklem 46d30d3d9c Fix NFSv4.1 client side handling of "soft,retrans=2" mounts.
Normally "soft,retrans=2" cannot be safely used on NFSv4 mounts, since
the RPC can fail and leave the open/lock state in an undefined state.
Doing I/O on a pNFS DS is an exception to this, since no open/lock state
is maintained on the DS server.
It is useful to do "soft,retrans=2" connections to a DS when it is mirrored,
so that the client can detect failure of the DS. As such, mounts from the MDS
to the DSs should use these mount options when mirroring is enabled.
However, the NFSv4.1 client still leaves the session in an undefined state
when this happens.
This patch fixes the problem by setting the session defunct, so it will
no longer be used.
The patch also sets "retries=2" on the connections done by the client to
a DS, which is the internal equivalent of "soft,retrans=2".
The client does not know if the server implements mirroring at connection
time, but always doing this should be safe, since it will fall back on doing
I/O via the MDS as a proxy when there is a failure doing an I/O RPC to the DS.

This patch should not affect non-pNFS client mounts.

MFC after:	2 weeks
2018-06-16 19:45:06 +00:00
..
amd64 linuxulator: do not include legacy syscalls on arm64 2018-06-15 14:41:51 +00:00
arm allwinner: ccung: Fully subclass the clock drivers 2018-06-15 08:36:21 +00:00
arm64 arm64 linuxulator: add linux_dummy.c based on amd64 2018-06-15 19:42:52 +00:00
bsm
cam Fix da(4) locking when probing SMR drives. 2018-06-14 17:08:44 +00:00
cddl This originated from ZFS On Linux, as 2018-06-08 17:38:28 +00:00
compat Add linprocfs support for min_free_kbytes 2018-06-15 15:22:27 +00:00
conf Correct kern.pre.mk comment: objcopy, not objdump, copies objects. 2018-06-15 16:32:18 +00:00
contrib [ath_hal] Return failure if noise floor calibration fails. 2018-06-08 18:21:57 +00:00
crypto
ddb
dev Fix handling of enable counter for shared GPIO line in fixed regulator. 2018-06-16 08:25:38 +00:00
dts
fs Fix NFSv4.1 client side handling of "soft,retrans=2" mounts. 2018-06-16 19:45:06 +00:00
gdb
geom
gnu dts: Update our copy to Linux 4.17 2018-06-14 07:12:10 +00:00
i386 linuxulator: do not include legacy syscalls on arm64 2018-06-15 14:41:51 +00:00
isa
kern Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
kgssapi
libkern str(r)chr: Replace union abuse with __DECONST 2018-06-04 18:47:14 +00:00
mips hwpmc: yet another missed fixup 2018-06-08 18:54:47 +00:00
modules Add modules/rockchip 2018-06-14 06:40:59 +00:00
net Fix typo. 2018-06-16 19:21:09 +00:00
net80211
netgraph
netinet Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
netinet6 Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
netipsec uma: implement provisional api for per-cpu zones 2018-06-08 21:40:03 +00:00
netpfil Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
netsmb
nfs Switch RIB and RADIX_NODE_HEAD lock from rwlock(9) to rmlock(9). 2018-06-16 08:26:23 +00:00
nfsclient
nfsserver
nlm
ofed Revert r335094 and properly fix OFED build after r335053. 2018-06-14 07:55:10 +00:00
opencrypto
powerpc Split the PowerISA 3.0 HPT implementation from historic 2018-06-14 17:23:51 +00:00
riscv Don't jump to VA space until kernel is ready. 2018-06-13 10:32:21 +00:00
rpc
security audit(4): fix the definition of ARG_TERMID_ADDR 2018-06-13 14:55:31 +00:00
sparc64
sys Bump __FreeBSD_version after r335227 2018-06-15 20:57:02 +00:00
teken
tests
tools
ufs
vm Name the implementation of brk and sbrk sys_break(). 2018-06-14 21:27:25 +00:00
x86 Untangle configuration ifdefs a little. On x86, msi is optional on pci, 2018-06-10 14:49:13 +00:00
xdr
xen
Makefile