]> www.infradead.org Git - users/willy/pagecache.git/commit
Merge tag 'pull-revalidate' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 30 Jan 2025 17:13:35 +0000 (09:13 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 30 Jan 2025 17:13:35 +0000 (09:13 -0800)
commitd3d90cc2891c9cf4ecba7b85c0af716ab755c7e5
tree2cd073dc002e7a779b22e4b43d05b0ccf17ee6d0
parentce335806b5ecc5132aed0a1af8bd48ae3b2ea178
parent30d61efe118cad1a73ad2ad66a3298e4abdf9f41
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
13 files changed:
Documentation/filesystems/porting.rst
fs/afs/dir.c
fs/ceph/mds_client.c
fs/dcache.c
fs/exfat/namei.c
fs/fuse/dir.c
fs/libfs.c
fs/namei.c
fs/nfs/nfs3proc.c
fs/nfs/nfs4proc.c
fs/proc/base.c
fs/smb/client/dir.c
include/linux/nfs_xdr.h