opnsense-src/sys/fs
Rick Macklem 709c18911a nfsd: Add support for the NFSv4.2 change_attr_type attribute
Richard Kojedzinszky reported an intermittent problem where
the Linux NFSv4.2 client would sometimes not see changes done
to a directory by another client, although the change attribute
for the directory had changed.

A test patch that added the change_attr_type attribute to the
server and always returned NFS4_CHANGE_TYPE_VERSION_COUNTER_NOPNFS
seems to have resolved the issue.  Somewhat oddly, the Linux
knfsd server does not support this attribute but does not
seem to exhibit the stale caching problem.

This patch uses the VFCF_FILEREVINC flag on a file system (UFS, ZFS)
to return NFS4_CHANGE_TYPE_VERSION_COUNTER_NOPNFS.  It also
returns NFS4_CHANGE_TYPE_TIME_METADATA if VFCF_FILEREVCT is set,
which may be useful for exported fuse file systems.

PR:	284186
Reported by:	Richard Kojedzinszky <richard@kojedz.in>
Tested by:	Richard Kojedzinszky <richard@kojedz.in>
MFC after:	2 weeks
2025-01-20 13:51:33 -08:00
..
autofs Reduce reliance on sys/sysproto.h pollution 2024-04-15 21:35:40 +01:00
cd9660 cd9660: Apply the file and directory mode masks bits to all 12 access bits 2024-12-06 17:40:35 -05:00
cuse cuse: Use NULL for SYSUNINIT's last arg, which is a pointer type 2024-12-10 01:14:07 +08:00
deadfs sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
devfs kern: Make fileops and filterops tables const where possible 2024-11-26 21:04:21 +00:00
ext2fs ext2fs: 'struct ufid': Re-order fields and unpack 2024-12-13 15:04:50 +01:00
fdescfs sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
fifofs sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
fuse fusefs: fix a memory leak 2024-12-23 13:37:19 -07:00
mntfs sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
msdosfs fs: Add static asserts for the size of fid structures 2024-12-05 17:56:23 -08:00
nfs nfsd: Add support for the NFSv4.2 change_attr_type attribute 2025-01-20 13:51:33 -08:00
nfsclient nfscl: Simplify the deleg argument for nfscl_deleg() 2025-01-17 12:29:11 -08:00
nfsserver nfsd: Add vfs.nfsd.testing_disable_grace sysctl 2025-01-10 06:49:45 -08:00
nullfs nullfs: stop lying about mount flags in statfs(2) 2024-12-20 17:58:29 +02:00
p9fs p9fs: Use UNLINKAT instead of REMOVE to implement removals 2024-11-07 18:23:32 +00:00
procfs proc_rwmem check PRIV_PROC_MEM_WRITE when writing 2024-11-08 16:11:33 -08:00
pseudofs pseudofs: fix off by one in hash iteration in pfs_purge 2023-11-20 05:57:25 +00:00
smbfs Add vnode_pager_clean_{a,}sync(9) 2024-01-11 18:44:53 +02:00
tarfs tarfs: 'struct tarfs_fid': Switch 'gen' to 'u_int', avoid packing 2024-12-13 15:04:42 +01:00
tmpfs stat(2): add st_filerev 2025-01-16 20:54:20 +02:00
udf fs: Add static asserts for the size of fid structures 2024-12-05 17:56:23 -08:00
unionfs cred: proc_set_cred(), proc_unset_cred(): Update user's process count 2024-12-16 15:42:32 +01:00