freebsd-dev/sys
Rick Macklem 5218d82c81 nfscl: Add support for a NFSv4 AppendWrite RPC
For IO_APPEND VOP_WRITE()s, the code first does a
Getattr RPC to acquire the file's size, before it
can do the Write RPC.

Although NFS does not have an append write operation,
an NFSv4 compound can use a Verify operation to check
that the client's notion of the file's size is
correct, followed by the Write operation.

This patch modifies the NFSv4 client to use an Appendwrite
RPC, which does a Verify to check the file's size before
doing the Write.  This avoids the need for a Getattr RPC
to preceed this RPC and reduces the RPC count by half for
IO_APPEND writes, so long as the client knows the file's
size.

The nfsd structure was moved from the stack to be malloc()'d,
since the kernel stack limit was being exceeded.

While here, fix the types of a few variables, although
there should not be any semantics change caused by these
type changes.
2022-04-30 13:49:23 -07:00
..
amd64 Remove dead code. 2022-04-26 19:40:59 +03:00
arm busdma_bounce: Add free_bounce_pages helper function. 2022-04-21 10:42:14 -07:00
arm64 Map the ACPI tables into the DMAP 2022-04-29 13:11:02 +01:00
bsm
cam cam_periph: Return ENXIO when peripheral is invalidated 2022-04-28 16:30:00 -06:00
cddl
compat LinuxKPI: 802.11: fill in two more TODOs 2022-04-30 08:00:04 +00:00
conf FB_INSTALL_CDEV: Remove this option and related code. 2022-04-21 10:29:14 -07:00
contrib rtw88: deal with debug messages 2022-04-27 15:20:34 +00:00
crypto ccp: Use devclass_find to lookup devclass in db_show_ccp. 2022-04-21 10:29:14 -07:00
ddb
dev uath(4): Fix incorrect byte-swapping and a buffer length check. 2022-04-30 11:23:07 +02:00
dts
fs nfscl: Add support for a NFSv4 AppendWrite RPC 2022-04-30 13:49:23 -07:00
gdb
geom geom_dev: extend kevent support for geom dev 2022-04-28 08:40:13 -08:00
gnu
i386 Remove dead code. 2022-04-26 19:40:59 +03:00
isa vgapm: Use devclass_find to lookup the vga devclass in suspend and resume. 2022-04-21 10:29:15 -07:00
kern subr_unit.c: make userspace tests buildable 2022-04-28 03:00:14 +03:00
kgssapi kgssapi krb5: Remove unused variables. 2022-04-06 16:45:29 -07:00
libkern libkern: Fix two typos in source code comments 2022-04-09 09:36:34 +02:00
modules linux(4): Add a simple rseq syscall implementation. 2022-04-26 19:35:56 +03:00
net lacp: short timeout erroneously declares link-flapping 2022-04-27 12:41:30 -07:00
net80211 net80211: Fix traffic hang on STA/AP VAPs on a multi-VAP interface 2022-04-21 22:49:01 -07:00
netgraph ng_netflow: Move various variables under INET || INET6. 2022-04-13 16:08:21 -07:00
netinet sctp: improve locking 2022-04-27 16:07:31 +02:00
netinet6 udp6: allow udp_tun_func_t() to indicate it did not eat the packet 2022-04-22 16:55:23 +02:00
netipsec ipsec_encap: setdf is only used for INET. 2022-04-13 16:08:21 -07:00
netpfil pf: Add per-rule timestamps for rule and eth_rule 2022-04-22 19:53:20 +02:00
netsmb smb_smb_treedisconnect: eliminate write only variable mbp 2022-04-04 22:30:57 -06:00
nfs nfs: do not panic on bootpc_init when no interfaces are found 2022-04-07 19:33:26 -03:00
nfsclient
nfsserver
nlm
ofed ofed: Fix a typo in a source code comment 2022-04-09 14:39:36 +02:00
opencrypto KTLS: Add a new recrypt operation to the software backend. 2022-04-22 15:52:50 -07:00
powerpc powerpc: enable wlan and ath modules in GENERIC64* 2022-04-28 11:42:39 +02:00
riscv busdma_bounce: Add free_bounce_pages helper function. 2022-04-21 10:42:14 -07:00
rpc svc_vc_rendezvous_stat: eliminiate write only variable stat 2022-04-04 22:31:04 -06:00
security mac_pimd: Support for privilege drop in pimd 2022-04-20 08:07:37 +02:00
sys Add stop_all_proc_block(9) 2022-04-28 02:27:35 +03:00
teken
tests
tools
ufs ffs: plug a set-but-not-used var 2022-04-19 16:51:12 +02:00
vm vm_phys: avoid waste in multipage allocation 2022-04-26 02:56:23 -05:00
x86 Remove dead code. 2022-04-26 19:40:59 +03:00
xdr
xen xen: Use __diagused for a variable only used in KASSERT(). 2022-04-13 16:08:20 -07:00
Makefile