linux/fs/fuse
Linus Torvalds 00b04f4495 vfs-7.4-rc1.idmap
Please consider pulling these changes from the signed vfs-7.4-rc1.idmap tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlgAKCRCRxhvAZXjc
 opFuAPwLL5l3D3GSRyD+SyOjKYThylgowvH9c2BcLWbSAIO6yQD9F05GX+rrcbUq
 9ijolxAaQZYpEWsemZIIHx6BBwdDBA4=
 =IH8Z
 -----END PGP SIGNATURE-----

Merge tag 'vfs-7.4-rc1.idmap' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull vfs idmap constification from Christian Brauner:
 "This makes struct mnt_idmap const throughout the tree.

  A mount's idmapping is immutable. The only thing modified after
  alloc_mnt_idmap() is the reference count and that is hidden behind
  mnt_idmap_get() and mnt_idmap_put(). Everything else only reads from
  it. That is the same model struct cred uses and the idmapping is
  sensitive enough to deserve it.

  The conversion goes bottom up through the vfs{g,u}id and fs{g,u}id
  helpers, the privilege checks, acl, xattr and quota and then every
  inode operation that takes an idmap, so ->permission(), ->getattr(),
  ->setattr(), ->create(), ->mkdir(), ->mknod(), ->symlink(),
  ->rename(), ->tmpfile(), ->get_acl(), ->set_acl() and ->fileattr_set()
  with their implementations in every filesystem, plus the LSM hooks.

  struct vfsmount, struct mount_kattr and struct kstatmount store a
  const pointer and nop_mnt_idmap and invalid_mnt_idmap live in rodata,
  so anything that tries to modify them faults instead of silently
  corrupting the initial idmapping"

* tag 'vfs-7.4-rc1.idmap' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (27 commits)
  fs: make nop_mnt_idmap and invalid_mnt_idmap const
  fs: port mnt_idmap() and file_mnt_idmap() to const mnt_idmap
  fs: port vfs_*() helpers to const mnt_idmap
  fs: port ->setattr() to pass const mnt_idmap
  fs: port ->getattr() to pass const mnt_idmap
  fs: port ->create() to pass const mnt_idmap
  fs: port ->symlink() to pass const mnt_idmap
  fs: port ->mkdir() to pass const mnt_idmap
  fs: port ->rename() to pass const mnt_idmap
  fs: port ->mknod() to pass const mnt_idmap
  fs: port ->tmpfile() to pass const mnt_idmap
  fs: port ->get_acl() to pass const mnt_idmap
  fs: port ->set_acl() to pass const mnt_idmap
  fs: port ->fileattr_set() to pass const mnt_idmap
  fs: port xattr to const mnt_idmap
  fs: port ->permission() to pass const mnt_idmap
  fs: port acl to const mnt_idmap
  fs: port inode_init_owner() to const mnt_idmap
  fs: port inode_owner_or_capable() to const mnt_idmap
  fs: port privilege checking helpers to const mnt_idmap
  ...
2026-10-19 17:57:49 -10:00
..
acl.c fs: port ->get_acl() to pass const mnt_idmap 2026-09-23 09:19:50 +02:00
args.h fuse: add zero-copy over io-uring 2026-08-17 17:02:37 +02:00
backing.c fuse: use current creds for backing files 2026-06-15 14:06:19 +02:00
control.c fuse: Add SPDX ID lines to some files 2026-06-15 14:06:19 +02:00
cuse.c cuse: wait for pending RCU callbacks on module exit 2026-08-18 10:30:50 +02:00
dax.c fuse: convert iomap ops to ->iomap_next() 2026-07-31 12:28:51 +02:00
dev_uring_i.h fuse: add zero-copy over io-uring 2026-08-17 17:02:37 +02:00
dev_uring.c fuse: Fix the condition to enable over-io-uring 2026-08-24 12:18:02 +02:00
dev.c fuse: wake one waiter per freed slot when raising max_background 2026-08-18 15:20:29 +02:00
dev.h fuse: decouple fuse_ring creation from ent registration 2026-08-17 17:02:37 +02:00
dir.c fs: port mnt_idmap() and file_mnt_idmap() to const mnt_idmap 2026-09-23 09:19:51 +02:00
file.c vfs-7.4-rc1.idmap 2026-10-19 17:57:49 -10:00
fuse_dev_i.h fuse: give wakeup hints to the scheduler for synchronous requests 2026-08-18 11:52:56 +02:00
fuse_i.h fs: port ->get_acl() to pass const mnt_idmap 2026-09-23 09:19:50 +02:00
fuse_trace.h fuse: add fuse_request_sent tracepoint 2026-06-15 14:06:19 +02:00
inode.c fuse: Fix the condition to enable over-io-uring 2026-08-24 12:18:02 +02:00
ioctl.c fs: port ->fileattr_set() to pass const mnt_idmap 2026-09-23 09:19:49 +02:00
iomode.c fuse: remove unused 'inode' parameter in fuse_passthrough_open 2025-08-27 14:29:44 +02:00
Kconfig fuse: fix references to fuse.rst -> fuse/fuse.rst 2025-09-02 11:14:15 +02:00
Makefile fuse: create notify.c 2026-06-15 14:06:17 +02:00
notify.c fuse: use iomap helper to mark folio uptodate 2026-07-31 12:28:47 +02:00
passthrough.c lsm: add backing_file LSM hooks 2026-04-03 16:53:50 -04:00
poll.c fuse: create poll.c 2026-06-15 14:06:17 +02:00
readdir.c treewide: refresh kmalloc_obj() conversions 2026-09-04 21:37:00 -07:00
req_timeout.c fuse: use min_not_zero() in fuse_init_server_timeout() 2026-08-18 14:35:23 +02:00
req.c fs: port fs{g,u}id helpers to const mnt_idmap 2026-09-23 09:19:47 +02:00
sysctl.c fuse: move request timeout code to a new source file 2026-06-15 14:06:15 +02:00
sysctl.h fuse: move request timeout code to a new source file 2026-06-15 14:06:15 +02:00
trace.c fuse: move CREATE_TRACE_POINTS to a separate file 2025-09-25 16:22:18 +02:00
virtio_fs.c fuse: convert iomap ops to ->iomap_next() 2026-07-31 12:28:51 +02:00
xattr.c fs: port xattr to const mnt_idmap 2026-09-23 09:19:49 +02:00