linux/Documentation/filesystems
Linus Torvalds d3d90cc289 Provide stable parent and name to ->d_revalidate() instances
Most of the filesystem methods where we care about dentry name
 and parent have their stability guaranteed by the callers;
 ->d_revalidate() is the major exception.
 
 It's easy enough for callers to supply stable values for
 expected name and expected parent of the dentry being
 validated.  That kills quite a bit of boilerplate in
 ->d_revalidate() instances, along with a bunch of races
 where they used to access ->d_name without sufficient
 precautions.
 
 Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQqUNBr3gm4hGXdBJlZ7Krx/gZQ6wUCZ5gkoQAKCRBZ7Krx/gZQ
 6w9FAP4nyxNNWMjE1TwuWR/DNDMYYuw/qn/miZ88B5BUM8hzqgD/W2SjRvcbSaIm
 xSIYpbtKgtqNU34P1PU+dBvL8Utz2AE=
 =TWY8
 -----END PGP SIGNATURE-----

Merge tag 'pull-revalidate' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs

Pull vfs d_revalidate updates from Al Viro:
 "Provide stable parent and name to ->d_revalidate() instances

  Most of the filesystem methods where we care about dentry name and
  parent have their stability guaranteed by the callers;
  ->d_revalidate() is the major exception.

  It's easy enough for callers to supply stable values for expected name
  and expected parent of the dentry being validated. That kills quite a
  bit of boilerplate in ->d_revalidate() instances, along with a bunch
  of races where they used to access ->d_name without sufficient
  precautions"

* tag 'pull-revalidate' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  9p: fix ->rename_sem exclusion
  orangefs_d_revalidate(): use stable parent inode and name passed by caller
  ocfs2_dentry_revalidate(): use stable parent inode and name passed by caller
  nfs: fix ->d_revalidate() UAF on ->d_name accesses
  nfs{,4}_lookup_validate(): use stable parent inode passed by caller
  gfs2_drevalidate(): use stable parent inode and name passed by caller
  fuse_dentry_revalidate(): use stable parent inode and name passed by caller
  vfat_revalidate{,_ci}(): use stable parent inode passed by caller
  exfat_d_revalidate(): use stable parent inode passed by caller
  fscrypt_d_revalidate(): use stable parent inode passed by caller
  ceph_d_revalidate(): propagate stable name down into request encoding
  ceph_d_revalidate(): use stable parent inode passed by caller
  afs_d_revalidate(): use stable name and parent inode passed by caller
  Pass parent directory inode and expected name to ->d_revalidate()
  generic_ci_d_compare(): use shortname_storage
  ext4 fast_commit: make use of name_snapshot primitives
  dissolve external_name.u into separate members
  make take_dentry_name_snapshot() lockless
  dcache: back inline names with a struct-wrapped array of unsigned long
  make sure that DNAME_INLINE_LEN is a multiple of word size
2025-01-30 09:13:35 -08:00
..
bcachefs docs: filesystems: bcachefs: fixed some spelling mistakes in the bcachefs coding style page 2024-12-21 01:36:14 -05:00
caching doc: correcting the debug path for cachefiles 2024-10-24 13:50:27 +02:00
ext4
iomap Documentation: filesystems: fix two misspells 2024-12-13 08:46:08 -07:00
nfs nfs: probe for LOCALIO when v3 client reconnects to server 2025-01-14 17:05:10 -05:00
smb ksmbd: fix spelling mistakes in documentation 2024-08-18 17:02:36 -05:00
spufs
xfs docs: describe xfs directory tree online fsck 2024-04-15 14:59:01 -07:00
9p.rst USB/Thunderbolt update for 6.12-rc1 2024-09-26 09:45:36 -07:00
adfs.rst
affs.rst
afs.rst
api-summary.rst doc: split buffer.rst out of api-summary.rst 2024-05-05 17:53:40 -07:00
autofs-mount-control.rst
autofs.rst Documentation: filesystems: update filename extensions 2024-11-22 10:31:04 -07:00
automount-support.rst
befs.rst
bfs.rst
btrfs.rst
buffer.rst doc: split buffer.rst out of api-summary.rst 2024-05-05 17:53:40 -07:00
ceph.rst doc: ceph: update userspace command to get CephFS metadata 2024-05-23 10:35:47 +02:00
coda.rst
configfs.rst
cramfs.rst
dax.rst
debugfs.rst saner replacement for debugfs_rename() 2025-01-15 13:14:37 +01:00
devpts.rst
directory-locking.rst Docs: typos/spelling 2024-05-02 10:02:29 -06:00
dlmfs.rst Documentation: filesystems: update filename extensions 2024-11-22 10:31:04 -07:00
dnotify.rst
ecryptfs.rst
efivarfs.rst Documentation: Mark the 'efivars' sysfs interface as removed 2024-04-13 10:33:02 +02:00
erofs.rst erofs: allow large folios for compressed files 2024-08-19 16:10:04 +08:00
ext2.rst
ext3.rst
f2fs.rst f2fs: introduce device aliasing file 2024-11-01 01:19:00 +00:00
fiemap.rst fiemap: use kernel-doc includes in fiemap docbook 2024-12-22 11:29:50 +01:00
files.rst docs: filesystems: fix typo in docs 2024-02-09 10:37:20 +01:00
fscrypt.rst fscrypt: write CBC-CTS instead of CTS-CBC 2024-02-23 21:38:59 -08:00
fsverity.rst Documentation: filesystems: update filename extensions 2024-11-22 10:31:04 -07:00
fuse-io-uring.rst fuse: Add fuse-io-uring design documentation 2025-01-24 11:53:56 +01:00
fuse-io.rst docs/fuse-io: Document the usage of DIRECT_IO_ALLOW_MMAP 2023-12-04 10:16:53 +01:00
fuse.rst
gfs2-glocks.rst gfs2: Get rid of demote_ok checks 2024-05-29 15:34:55 +02:00
gfs2-uevents.rst
gfs2.rst
hfs.rst
hfsplus.rst
hpfs.rst
idmappings.rst doc: correcting the idmapping mount example 2024-08-30 08:22:37 +02:00
index.rst fuse: Add fuse-io-uring design documentation 2025-01-24 11:53:56 +01:00
inotify.rst
isofs.rst
journalling.rst docs:filesystems: fix spelling and grammar mistakes 2024-09-10 15:36:50 -06:00
locking.rst 9p: fix ->rename_sem exclusion 2025-01-27 19:25:24 -05:00
locks.rst
mount_api.rst fs_parser: update mount_api doc to match function signature 2024-11-26 10:32:20 +01:00
multigrain-ts.rst Documentation: add a new file documenting multigrain timestamps 2024-10-10 10:20:52 +02:00
netfs_library.rst netfs: fix documentation build error 2024-10-08 10:39:38 +02:00
nilfs2.rst
ntfs3.rst
ocfs2-online-filecheck.rst
ocfs2.rst
omfs.rst
orangefs.rst
overlayfs.rst overlayfs.rst: Fix and improve grammar 2025-01-09 11:51:44 -07:00
path-lookup.rst Documentation: filesystems: update filename extensions 2024-11-22 10:31:04 -07:00
path-lookup.txt Documentation: filesystems: update filename extensions 2024-11-22 10:31:04 -07:00
porting.rst Provide stable parent and name to ->d_revalidate() instances 2025-01-30 09:13:35 -08:00
proc.rst Documentation/filesystems/proc.rst: fix possessive form of "process" 2025-01-25 20:22:40 -08:00
qnx6.rst
quota.rst
ramfs-rootfs-initramfs.rst Documentation: filesystems: update filename extensions 2024-11-22 10:31:04 -07:00
relay.rst
romfs.rst
seq_file.rst
sharedsubtree.rst
splice.rst
squashfs.rst Documentation: update the Squashfs filesystem documentation 2025-01-24 22:47:21 -08:00
sysfs.rst
sysv-fs.rst
tmpfs.rst docs: tmpfs: Add casefold options 2024-10-28 13:36:55 +01:00
ubifs-authentication.rst
ubifs.rst
udf.rst
vfat.rst
vfs.rst 9p: fix ->rename_sem exclusion 2025-01-27 19:25:24 -05:00
virtiofs.rst
zonefs.rst