linux-yocto/fs/nfs
Dai Ngo b623390045 NFS: Fix LTP test failures when timestamps are delegated
The utimes01 and utime06 tests fail when delegated timestamps are
enabled, specifically in subtests that modify the atime and mtime
fields using the 'nobody' user ID.

The problem can be reproduced as follow:

# echo "/media *(rw,no_root_squash,sync)" >> /etc/exports
# export -ra
# mount -o rw,nfsvers=4.2 127.0.0.1:/media /tmpdir
# cd /opt/ltp
# ./runltp -d /tmpdir -s utimes01
# ./runltp -d /tmpdir -s utime06

This issue occurs because nfs_setattr does not verify the inode's
UID against the caller's fsuid when delegated timestamps are
permitted for the inode.

This patch adds the UID check and if it does not match then the
request is sent to the server for permission checking.

Fixes: e12912d941 ("NFSv4: Add support for delegated atime and mtime attributes")
Signed-off-by: Dai Ngo <dai.ngo@oracle.com>
Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
2025-11-10 16:55:12 -05:00
..
blocklayout NFS: Update the blocklayout to use xdr_set_scratch_folio() 2025-09-23 13:29:50 -04:00
filelayout NFS: Update the filelayout to use xdr_set_scratch_folio() 2025-09-23 13:29:50 -04:00
flexfilelayout NFSv4/flexfiles: fix to allocate mirror->dss before use 2025-10-13 14:33:00 -04:00
cache_lib.c
cache_lib.h
callback_proc.c NFS: CB_OFFLOAD can return NFS4ERR_DELAY 2025-01-21 11:34:50 -05:00
callback_xdr.c nfsd: don't use sv_nrthreads in connection limiting calculations. 2025-01-06 09:37:36 -05:00
callback.c SUNRPC: Move the svc_rpcb_cleanup() call sites 2025-09-23 13:28:19 -04:00
callback.h
client.c NFS: Check the TLS certificate fields in nfs_match_client() 2025-11-10 10:32:28 -05:00
delegation.c NFS: use a hash table for delegation lookup 2025-07-22 08:10:41 -04:00
delegation.h NFS: use a hash table for delegation lookup 2025-07-22 08:10:41 -04:00
dir.c NFSv2/v3: Fix error handling in nfs_atomic_open_v23() 2025-11-10 14:30:45 -05:00
direct.c nfs: direct: drop useless initializer in nfs_direct_write_completion() 2025-04-27 23:25:44 -04:00
dns_resolve.c
dns_resolve.h
export.c NFS: Fix filehandle bounds checking in nfs_fh_to_dentry() 2025-07-22 09:50:56 -04:00
file.c NFS: Enable use of the RWF_DONTCACHE flag on the NFS client 2025-09-23 13:29:50 -04:00
fs_context.c change the calling conventions for vfs_parse_fs_string() 2025-09-04 15:20:51 -04:00
fscache.c netfs: Fix undifferentiation of DIO reads from unbuffered reads 2025-05-23 10:35:03 +02:00
fscache.h netfs: Drop the was_async arg from netfs_read_subreq_terminated() 2024-12-20 22:34:03 +01:00
getroot.c nfs: fix the comment of nfs_get_root 2024-09-23 15:03:13 -04:00
inode.c NFS: Fix LTP test failures when timestamps are delegated 2025-11-10 16:55:12 -05:00
internal.h nfs/localio: add tracepoints for misaligned DIO READ and WRITE support 2025-09-30 16:10:30 -04:00
io.c NFS: Serialise O_DIRECT i/o and truncate() 2025-09-06 16:51:25 -04:00
iostat.h
Kconfig nfs: add missing selections of CONFIG_CRC32 2025-04-13 16:39:42 -04:00
localio.c nfs/localio: do not issue misaligned DIO out-of-order 2025-11-10 13:28:45 -05:00
Makefile nfs: add LOCALIO support 2024-09-23 15:03:30 -04:00
mount_clnt.c NFS: Remove unused function nfs_umount 2025-07-14 15:20:28 -07:00
namespace.c vfs_parse_fs_string() stuff 2025-10-03 10:51:44 -07:00
netns.h nfs: move the nfs4_data_server_cache into struct nfs_net 2025-04-27 23:25:44 -04:00
nfs.h NFS: Implement get_nfs_version() 2024-11-08 14:17:37 -05:00
nfs2super.c
nfs2xdr.c nfs/localio: add tracepoints for misaligned DIO READ and WRITE support 2025-09-30 16:10:30 -04:00
nfs3_fs.h
nfs3acl.c nfs: nfs3acl: drop useless assignment in nfs3_get_acl() 2025-04-27 23:25:44 -04:00
nfs3client.c pnfs: Set transport security policy to RPC_XPRTSEC_NONE unless using TLS 2025-11-10 10:32:28 -05:00
nfs3proc.c NFS client updates for Linux 6.15 2025-04-02 17:06:31 -07:00
nfs3super.c
nfs3xdr.c nfs/localio: add tracepoints for misaligned DIO READ and WRITE support 2025-09-30 16:10:30 -04:00
nfs4_fs.h NFSv4: Remove duplicate lookups, capability probes and fsinfo calls 2025-08-04 09:48:16 -07:00
nfs4client.c pnfs: Set transport security policy to RPC_XPRTSEC_NONE unless using TLS 2025-11-10 10:32:28 -05:00
nfs4file.c NFS: Enable use of the RWF_DONTCACHE flag on the NFS client 2025-09-23 13:29:50 -04:00
nfs4getroot.c NFSv4: Remove duplicate lookups, capability probes and fsinfo calls 2025-08-04 09:48:16 -07:00
nfs4idmap.c rpc_mkpipe_dentry(): saner calling conventions 2025-07-02 22:44:55 -04:00
nfs4idmap.h
nfs4namespace.c
nfs4proc.c NFSv4: Fix an incorrect parameter when calling nfs4_call_sync() 2025-11-10 14:30:46 -05:00
nfs4renewd.c fs: replace use of system_wq with system_percpu_wq 2025-09-19 16:15:07 +02:00
nfs4session.c
nfs4session.h nfs: add missing selections of CONFIG_CRC32 2025-04-13 16:39:42 -04:00
nfs4state.c NFSv4.1: fix mount hang after CREATE_SESSION failure 2025-09-23 13:28:19 -04:00
nfs4super.c do_nfs4_mount(): switch to vfs_parse_fs_string() 2025-09-04 15:20:58 -04:00
nfs4sysctl.c treewide: const qualify ctl_tables where applicable 2025-01-28 13:48:37 +01:00
nfs4trace.c pNFS: Add prepare commit trace to block/scsi layout 2025-07-14 15:20:28 -07:00
nfs4trace.h pNFS: Add prepare commit trace to block/scsi layout 2025-07-14 15:20:28 -07:00
nfs4xdr.c NFS: Update getacl to use xdr_set_scratch_folio() 2025-09-23 13:29:50 -04:00
nfs42.h NFS: Add support for fallocate(FALLOC_FL_ZERO_RANGE) 2025-05-28 17:17:13 -04:00
nfs42proc.c NFS: Update listxattr to use xdr_set_scratch_folio() 2025-09-23 13:29:50 -04:00
nfs42xattr.c mm/list_lru: simplify the list_lru walk callback function 2024-11-11 17:22:26 -08:00
nfs42xdr.c NFS: Update listxattr to use xdr_set_scratch_folio() 2025-09-23 13:29:50 -04:00
nfsroot.c NFS: Fix an off by one in root_nfs_cat() 2024-03-09 09:14:51 -05:00
nfstrace.c
nfstrace.h nfs/localio: add tracepoints for misaligned DIO READ and WRITE support 2025-09-30 16:10:30 -04:00
pagelist.c NFS: Fix a race when updating an existing write 2025-08-19 11:16:02 -07:00
pnfs_dev.c
pnfs_nfs.c pnfs: Fix TLS logic in _nfs4_pnfs_v4_ds_connect() 2025-11-10 10:32:28 -05:00
pnfs.c NFS: Clean up pnfs_put_layout_hdr()/pnfs_destroy_layout_final() 2025-07-22 08:10:41 -04:00
pnfs.h nfs: don't share pNFS DS connections between net namespaces 2025-04-27 23:25:44 -04:00
proc.c nfs: change mkdir inode_operation to return alternate dentry if needed. 2025-03-05 11:52:50 +01:00
read.c fs/nfs/read: fix double-unlock bug in nfs_return_empty_folio() 2025-05-28 17:17:13 -04:00
super.c new helper: set_default_d_op() 2025-06-10 22:21:16 -04:00
symlink.c fs: Pass a folio to page_put_link() 2025-05-15 12:14:29 +02:00
sysctl.c treewide: const qualify ctl_tables where applicable 2025-01-28 13:48:37 +01:00
sysfs.c NFS: sysfs: fix leak when nfs_client kobject add fails 2025-11-10 14:30:45 -05:00
sysfs.h NFS: Add sysfs links to sunrpc clients for nfs_clients 2023-06-19 15:04:13 -04:00
unlink.c VFS: rename lookup_one_len family to lookup_noperm and remove permission check 2025-04-08 11:24:36 +02:00
write.c NFS: check if suid/sgid was cleared after a write as needed 2025-10-13 14:33:00 -04:00