twx-linux/include/uapi/linux
Linus Torvalds ecd7db2047 v6.6-vfs.tmpfs
-----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCZOXTkgAKCRCRxhvAZXjc
 ouZsAPwNBHB2aPKtzWURuKx5RX02vXTzHX+A/LpuDz5WBFe8zQD+NlaBa4j0MBtS
 rVYM+CjOXnjnsLc8W0euMnfYNvViKgQ=
 =L2+2
 -----END PGP SIGNATURE-----

Merge tag 'v6.6-vfs.tmpfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull libfs and tmpfs updates from Christian Brauner:
 "This cycle saw a lot of work for tmpfs that required changes to the
  vfs layer. Andrew, Hugh, and I decided to take tmpfs through vfs this
  cycle. Things will go back to mm next cycle.

  Features
  ========

   - By far the biggest work is the quota support for tmpfs. New tmpfs
     quota infrastructure is added to support it and a new QFMT_SHMEM
     uapi option is exposed.

     This offers user and group quotas to tmpfs (project quotas will be
     added later). Similar to other filesystems tmpfs quota are not
     supported within user namespaces yet.

   - Add support for user xattrs. While tmpfs already supports security
     xattrs (security.*) and POSIX ACLs for a long time it lacked
     support for user xattrs (user.*). With this pull request tmpfs will
     be able to support a limited number of user xattrs.

     This is accompanied by a fix (see below) to limit persistent simple
     xattr allocations.

   - Add support for stable directory offsets. Currently tmpfs relies on
     the libfs provided cursor-based mechanism for readdir. This causes
     issues when a tmpfs filesystem is exported via NFS.

     NFS clients do not open directories. Instead, each server-side
     readdir operation opens the directory, reads it, and then closes
     it. Since the cursor state for that directory is associated with
     the opened file it is discarded after each readdir operation. Such
     directory offsets are not just cached by NFS clients but also
     various userspace libraries based on these clients.

     As it stands there is no way to invalidate the caches when
     directory offsets have changed and the whole application depends on
     unchanging directory offsets.

     At LSFMM we discussed how to solve this problem and decided to
     support stable directory offsets. libfs now allows filesystems like
     tmpfs to use an xarrary to map a directory offset to a dentry. This
     mechanism is currently only used by tmpfs but can be supported by
     others as well.

  Fixes
  =====

   - Change persistent simple xattrs allocations in libfs from
     GFP_KERNEL to GPF_KERNEL_ACCOUNT so they're subject to memory
     cgroup limits. Since this is a change to libfs it affects both
     tmpfs and kernfs.

   - Correctly verify {g,u}id mount options.

     A new filesystem context is created via fsopen() which records the
     namespace that becomes the owning namespace of the superblock when
     fsconfig(FSCONFIG_CMD_CREATE) is called for filesystems that are
     mountable in namespaces. However, fsconfig() calls can occur in a
     namespace different from the namespace where fsopen() has been
     called.

     Currently, when fsconfig() is called to set {g,u}id mount options
     the requested {g,u}id is mapped into a k{g,u}id according to the
     namespace where fsconfig() was called from. The resulting k{g,u}id
     is not guaranteed to be resolvable in the namespace of the
     filesystem (the one that fsopen() was called in).

     This means it's possible for an unprivileged user to create files
     owned by any group in a tmpfs mount since it's possible to set the
     setid bits on the tmpfs directory.

     The contract for {g,u}id mount options and {g,u}id values in
     general set from userspace has always been that they are translated
     according to the caller's idmapping. In so far, tmpfs has been
     doing the correct thing. But since tmpfs is mountable in
     unprivileged contexts it is also necessary to verify that the
     resulting {k,g}uid is representable in the namespace of the
     superblock to avoid such bugs.

     The new mount api's cross-namespace delegation abilities are
     already widely used. Having talked to a bunch of userspace this is
     the most faithful solution with minimal regression risks"

* tag 'v6.6-vfs.tmpfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  tmpfs,xattr: GFP_KERNEL_ACCOUNT for simple xattrs
  mm: invalidation check mapping before folio_contains
  tmpfs: trivial support for direct IO
  tmpfs,xattr: enable limited user extended attributes
  tmpfs: track free_ispace instead of free_inodes
  xattr: simple_xattr_set() return old_xattr to be freed
  tmpfs: verify {g,u}id mount options correctly
  shmem: move spinlock into shmem_recalc_inode() to fix quota support
  libfs: Remove parent dentry locking in offset_iterate_dir()
  libfs: Add a lock class for the offset map's xa_lock
  shmem: stable directory offsets
  shmem: Refactor shmem_symlink()
  libfs: Add directory operations for stable offsets
  shmem: fix quota lock nesting in huge hole handling
  shmem: Add default quota limit mount options
  shmem: quota support
  shmem: prepare shmem quota infrastructure
  quota: Check presence of quota operation structures instead of ->quota_read and ->quota_write callbacks
  shmem: make shmem_get_inode() return ERR_PTR instead of NULL
  shmem: make shmem_inode_acct_block() return error
2023-08-28 09:55:25 -07:00
..
android
byteorder
caif
can can: uapi: move CAN_RAW_FILTER_MAX definition to raw.h 2023-06-22 09:44:28 +02:00
cifs
dvb media: dvb: bump DVB API version 2023-05-14 16:05:28 +01:00
genwqe
hdlc
hsi
iio
isdn
misc
mmc
netfilter netfilter: nf_tables: Introduce NFT_MSG_GETSETELEM_RESET 2023-06-26 08:05:57 +02:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd NFSD: Handle new xprtsec= export option 2023-04-27 18:49:24 -04:00
raid
sched
spi spi: add SPI_MOSI_IDLE_LOW mode bit 2023-05-30 15:20:08 +01:00
sunrpc
surface_aggregator
tc_act net/sched: act_tunnel_key: add support for "don't fragment" 2023-03-30 23:24:24 -07:00
tc_ematch
usb hardening fixes for v6.5-rc1 2023-07-08 12:08:39 -07:00
a.out.h
acct.h
acrn.h
adb.h
adfs_fs.h
affs_hardblocks.h block: change all __u32 annotations to __be32 in affs_hardblocks.h 2023-06-20 14:28:17 -06:00
agpgart.h
aio_abi.h
am437x-vpfe.h
amt.h
apm_bios.h
arcfb.h
arm_sdei.h
aspeed-lpc-ctrl.h
aspeed-p2a-ctrl.h
aspeed-video.h
atalk.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_tcp.h
atm_zatm.h
atm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h Move COMPAT_ATM_ADDPARTY to net/atm/svc.c 2023-03-10 21:05:16 +01:00
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
audit.h
auto_dev-ioctl.h autofs: use flexible array in ioctl structure 2023-05-30 16:42:00 -07:00
auto_fs4.h
auto_fs.h
auxvec.h
ax25.h
batadv_packet.h
batman_adv.h
baycom.h
bcm933xx_hcs.h
bfs_fs.h
binfmts.h
blkpg.h
blktrace_api.h
blkzoned.h block: Fix a source code comment in include/uapi/linux/blkzoned.h 2023-07-24 20:11:54 -06:00
bpf_common.h
bpf_perf_event.h
bpf.h bpf-next-for-netdev 2023-06-24 14:52:28 -07:00
bpfilter.h
bpqether.h
bsg.h
bt-bmc.h
btf.h
btrfs_tree.h
btrfs.h btrfs: scrub: reject unsupported scrub flags 2023-04-17 19:52:19 +02:00
cachefiles.h
can.h can: uapi: move CAN_RAW_FILTER_MAX definition to raw.h 2023-06-22 09:44:28 +02:00
capability.h capability: erase checker warnings about struct __user_cap_data_struct 2023-06-06 17:05:54 -04:00
capi.h
cciss_defs.h
cciss_ioctl.h
ccs.h
cdrom.h
cec-funcs.h
cec.h
cfm_bridge.h
cgroupstats.h
chio.h
close_range.h
cn_proc.h
coda.h
coff.h
comedi.h
connector.h
const.h uapi/linux/const.h: prefer ISO-friendly __typeof__ 2023-04-18 16:39:34 -07:00
coresight-stm.h
counter.h counter: i8254: Introduce the Intel 8254 interface library module 2023-06-08 10:11:17 -04:00
cramfs_fs.h
cryptouser.h
cuda.h
cxl_mem.h cxl/mbox: Deprecate poison commands 2023-04-22 14:41:30 -07:00
cyclades.h
cycx_cfm.h
dcbnl.h
dccp.h
devlink.h
dlm_device.h
dlm_plock.h
dlm.h fs: dlm: remove deprecated code parts 2023-03-06 15:49:07 -06:00
dlmconstants.h fs: dlm: remove deprecated code parts 2023-03-06 15:49:07 -06:00
dm-ioctl.h dm: split discards further if target sets max_discard_granularity 2023-03-30 15:57:50 -04:00
dm-log-userspace.h
dma-buf.h
dma-heap.h
dns_resolver.h
dqblk_xfs.h
dw100.h
edd.h
efs_fs_sb.h
elf-em.h
elf-fdpic.h
elf.h RISC-V: Remove ptrace support for vectors 2023-08-22 13:54:59 -07:00
errno.h
errqueue.h
erspan.h
ethtool_netlink.h net: ethtool: correct MAX attribute value for stats 2023-06-12 08:50:48 +01:00
ethtool.h
eventfd.h eventfd: add a uapi header for eventfd userspace APIs 2023-06-15 14:55:15 +02:00
eventpoll.h Move ep_take_care_of_epollwakeup() to fs/eventpoll.c 2023-03-10 21:05:16 +01:00
ext4.h ext4: Add a uapi header for ext4 userspace APIs 2023-04-19 23:39:42 -04:00
f2fs.h
fadvise.h
falloc.h
fanotify.h fanotify: define struct members to hold response decision context 2023-02-07 12:53:53 +01:00
fb.h
fcntl.h exportfs: allow exporting non-decodeable file handles to userspace 2023-05-25 13:16:57 +02:00
fd.h
fdreg.h
fib_rules.h
fiemap.h
filter.h
firewire-cdev.h firewire: fix warnings to generate UAPI documentation 2023-06-06 07:54:00 +09:00
firewire-constants.h
fou.h ynl: broaden the license even more 2023-03-16 21:20:32 -07:00
fpga-dfl.h
fs.h
fscrypt.h
fsi.h
fsl_hypervisor.h
fsl_mc.h
fsmap.h
fsverity.h
fuse.h fuse: add feature flag for expire-only 2023-06-07 16:26:33 +02:00
futex.h
gameport.h
gen_stats.h
genetlink.h
gfs2_ondisk.h
gpio.h
gsmmux.h tty: n_gsm: add ioctl for DLC specific parameter configuration 2023-03-29 10:50:48 +02:00
gtp.h
handshake.h net/handshake: Enable the SNI extension to work properly 2023-05-24 22:05:24 -07:00
hash_info.h
hdlc.h
hdlcdrv.h
hdreg.h
hid.h
hiddev.h
hidraw.h
hpet.h
hsr_netlink.h
hw_breakpoint.h Move bp_type_idx to include/linux/hw_breakpoint.h 2023-03-10 21:05:16 +01:00
hyperv.h
i2c-dev.h
i2c.h
i2o-dev.h
i8k.h
icmp.h
icmpv6.h
idxd.h dmaengine: idxd: process batch descriptor completion record faults 2023-04-12 23:18:45 +05:30
if_addr.h
if_addrlabel.h
if_alg.h
if_arcnet.h
if_arp.h
if_bonding.h
if_bridge.h bridge: vlan: Allow setting VLAN neighbor suppression state 2023-04-21 08:25:50 +01:00
if_cablemodem.h
if_eql.h
if_ether.h
if_fc.h
if_fddi.h
if_hippi.h
if_infiniband.h
if_link.h net: vxlan: Add nolocalbypass option to vxlan. 2023-05-13 17:02:33 +01:00
if_ltalk.h
if_macsec.h
if_packet.h af_packet: Fix warning of fortified memcpy() in packet_getname(). 2023-07-25 20:10:05 -07:00
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_slip.h
if_team.h
if_tun.h
if_tunnel.h
if_vlan.h
if_x25.h
if_xdp.h
if.h
ife.h
igmp.h
ila.h
in6.h
in_route.h
in.h ipv{4,6}/raw: fix output xfrm lookup wrt protocol 2023-05-23 15:38:59 +02:00
inet_diag.h
inotify.h
input-event-codes.h
input.h
io_uring.h nvme: improved uring polling 2023-06-28 16:09:41 -06:00
ioam6_genl.h
ioam6_iptunnel.h
ioam6.h
ioctl.h
iommu.h
iommufd.h
ioprio.h scsi: block: Improve ioprio value validity checks 2023-06-16 12:04:30 -04:00
ip6_tunnel.h
ip_vs.h
ip.h uapi: add missing ip/ipv6 header dependencies for linux/stddef.h 2023-02-06 09:01:00 +00:00
ipc.h
ipmi_bmc.h
ipmi_msgdefs.h
ipmi_ssif_bmc.h
ipmi.h
ipsec.h
ipv6_route.h
ipv6.h uapi: net: ipv6: Replace fake flex-array with flex-array member 2023-03-30 14:06:56 -06:00
irqnr.h
iso_fs.h
isst_if.h platform/x86: ISST: Add SST-TF support via TPMI 2023-03-16 15:18:02 +01:00
ivtv.h
ivtvfb.h
jffs2.h
joystick.h
kcm.h
kcmp.h
kcov.h
kd.h
kdev_t.h
kernel-page-flags.h
kernel.h
kernelcapi.h
kexec.h
keyboard.h
keyctl.h
kfd_ioctl.h drm/amdkfd: bump kfd ioctl minor version for event age availability 2023-06-15 11:37:55 -04:00
kfd_sysfs.h drm/amdkfd: display debug capabilities 2023-06-09 12:34:45 -04:00
kvm_para.h
kvm.h Common KVM changes for 6.5: 2023-07-01 07:07:55 -04:00
l2tp.h
landlock.h landlock: Clarify documentation for the LANDLOCK_ACCESS_FS_REFER right 2023-02-21 18:15:59 +01:00
libc-compat.h
limits.h
lirc.h
llc.h
loadpin.h
loop.h
lp.h
lwtunnel.h
magic.h
major.h
map_to_7segment.h
map_to_14segment.h
matroxfb.h
max2175.h
mctp.h
mdio.h net: mdio: add clause 73 to ethtool conversion helper 2023-05-24 09:13:22 -07:00
media-bus-format.h
media.h media: uapi: Use unsigned int values for assigning bits in u32 fields 2023-05-25 16:21:22 +02:00
mei_uuid.h mei: Move uuid.h to the MEI namespace 2023-03-23 17:25:46 +01:00
mei.h mei: Move uuid.h to the MEI namespace 2023-03-23 17:25:46 +01:00
membarrier.h
memfd.h
mempolicy.h
mii.h
minix_fs.h
mman.h cachestat: implement cachestat syscall 2023-06-09 16:25:16 -07:00
mmtimer.h
module.h
mount.h fs: add FSCONFIG_CMD_CREATE_EXCL 2023-08-14 18:48:02 +02:00
mpls_iptunnel.h
mpls.h
mptcp.h mptcp: introduce MPTCP_FULL_INFO getsockopt 2023-06-21 22:45:57 -07:00
mqueue.h
mroute6.h
mroute.h
mrp_bridge.h
msdos_fs.h
msg.h
mtio.h
nbd-netlink.h
nbd.h uapi nbd: add cookie alias to handle 2023-04-27 19:15:11 -06:00
ncsi.h
ndctl.h
neighbour.h
net_dropmon.h
net_namespace.h
net_tstamp.h
net.h
netconf.h
netdev.h ynl: broaden the license even more 2023-03-16 21:20:32 -07:00
netdevice.h
netfilter_arp.h
netfilter_bridge.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h
netlink_diag.h
netlink.h
netrom.h
nexthop.h
nfc.h
nfs2.h
nfs3.h
nfs4_mount.h
nfs4.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h
nfs.h
nfsacl.h
nilfs2_api.h
nilfs2_ondisk.h
nitro_enclaves.h
nl80211-vnd-intel.h
nl80211.h wifi: nl80211/reg: add no-EHT regulatory flag 2023-06-21 14:01:29 +02:00
nsfs.h
nubus.h
nvme_ioctl.h
nvram.h
omap3isp.h
omapfb.h
oom.h
openat2.h
openvswitch.h net: openvswitch: add support for l4 symmetric hashing 2023-06-12 09:46:30 +01:00
packet_diag.h
param.h
parport.h ata: parport_pc: add 16-bit and 8-bit fast EPP transfer flags 2023-03-23 12:22:19 +09:00
patchkey.h
pci_regs.h PCI: Add PCI_EXT_CAP_ID_PL_32GT define 2023-05-31 16:34:38 -05:00
pci.h
pcitest.h
perf_event.h perf: Add perf_event_attr::config3 2023-02-07 11:52:00 +00:00
personality.h
pfkeyv2.h
pfrut.h
pg.h
phantom.h
phonet.h
pidfd.h
pkt_cls.h net: flower: fix stack-out-of-bounds in fl_set_key_cfm() 2023-07-27 20:01:29 -07:00
pkt_sched.h net/sched: taprio: add netlink reporting for offload statistics counters 2023-05-31 10:00:30 +01:00
pktcdvd.h pktcdvd: Get rid of custom printing macros 2023-06-07 14:26:09 -06:00
pmu.h
poll.h
posix_acl_xattr.h
posix_acl.h
posix_types.h
ppdev.h
ppp_defs.h
ppp-comp.h
ppp-ioctl.h
pps.h
pr.h
prctl.h riscv: Add prctl controls for userspace vector management 2023-06-08 07:16:53 -07:00
psample.h
psci.h
psp-sev.h crypto: ccp - Name -1 return value as SEV_RET_NO_FW_CALL 2023-03-21 11:37:32 +01:00
ptp_clock.h ptp: Add .getmaxphase callback to ptp_clock_info 2023-06-20 09:02:33 +01:00
ptrace.h ptrace: Provide set/get interface for syscall user dispatch 2023-04-16 14:23:07 +02:00
qemu_fw_cfg.h
qnx4_fs.h
qnxtypes.h
qrtr.h
quota.h shmem: prepare shmem quota infrastructure 2023-08-09 09:15:39 +02:00
radeonfb.h
random.h
rds.h
reboot.h
reiserfs_fs.h
reiserfs_xattr.h
remoteproc_cdev.h
resource.h
rfkill.h
rio_cm_cdev.h
rio_mport_cdev.h
rkisp1-config.h
romfs_fs.h
rose.h
route.h
rpl_iptunnel.h
rpl.h
rpmsg_types.h
rpmsg.h
rseq.h
rtc.h
rtnetlink.h net/sched: act_api: add specific EXT_WARN_MSG for tc action 2023-03-16 21:25:45 -07:00
rxrpc.h
scc.h
sched.h
scif_ioctl.h
screen_info.h
sctp.h sctp: add weighted fair queueing stream scheduler 2023-03-09 11:31:44 +01:00
seccomp.h
securebits.h
sed-opal.h sed-opal: geometry feature reporting command 2023-04-19 14:07:13 -06:00
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
seg6.h
selinux_netlink.h
sem.h
serial_core.h serial: 8250_pci1xxxx: Add driver for quad-uart support 2023-02-08 13:10:15 +01:00
serial_reg.h
serial.h
serio.h
sev-guest.h x86/sev: Change snp_guest_issue_request()'s fw_err argument 2023-03-21 15:43:19 +01:00
shm.h
signal.h
signalfd.h
smc_diag.h
smc.h
smiapp.h
snmp.h
sock_diag.h
socket.h
sockios.h
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h
stddef.h
stm.h
string.h
suspend_ioctls.h
swab.h
switchtec_ioctl.h
sync_file.h dma-buf/sync_file: Surface sync-file uABI 2023-03-28 13:39:02 -07:00
synclink.h
sysctl.h
sysinfo.h
target_core_user.h scsi: target: uapi: Replace fake flex-array with flexible-array member 2023-03-24 16:59:09 -04:00
taskstats.h delayacct: track delays from IRQ/SOFTIRQ 2023-04-18 16:39:34 -07:00
tcp_metrics.h
tcp.h
tdx-guest.h
tee.h
termios.h
thermal.h
time_types.h
time.h
timerfd.h
times.h
timex.h
tiocl.h
tipc_config.h
tipc_netlink.h
tipc_sockets_diag.h
tipc.h
tls.h
toshiba.h
tps6594_pfsm.h misc: tps6594-pfsm: Add driver for TI TPS6594 PFSM 2023-06-15 13:41:53 +02:00
tty_flags.h
tty.h
types.h types: Introduce [us]128 2023-06-05 09:36:35 +02:00
ublk_cmd.h ublk: add control command of UBLK_U_CMD_GET_FEATURES 2023-06-04 08:34:14 -06:00
udf_fs_i.h
udmabuf.h
udp.h
uhid.h
uinput.h
uio.h
uleds.h
ultrasound.h
um_timetravel.h
un.h
unistd.h
unix_diag.h
usbdevice_fs.h
usbip.h
user_events.h tracing/user_events: Align structs with tabs for readability 2023-03-29 06:52:09 -04:00
userfaultfd.h mm: userfaultfd: add UFFDIO_CONTINUE_MODE_WP to install WP PTEs 2023-04-05 19:42:48 -07:00
userio.h
utime.h
utsname.h
uuid.h mei: Move uuid.h to the MEI namespace 2023-03-23 17:25:46 +01:00
uvcvideo.h
v4l2-common.h
v4l2-controls.h media: Add AV1 uAPI 2023-06-09 16:13:01 +01:00
v4l2-dv-timings.h
v4l2-mediabus.h
v4l2-subdev.h media: v4l2-subdev: Add new ioctl for client capabilities 2023-04-15 08:58:41 +01:00
vbox_err.h
vbox_vmmdev_types.h
vboxguest.h
vdpa.h
vduse.h
veth.h
vfio_ccw.h
vfio_zdev.h
vfio.h VFIO updates for v6.5-rc1 2023-06-30 15:22:09 -07:00
vhost_types.h vhost: allow userspace to create workers 2023-07-03 12:15:14 -04:00
vhost.h vhost: Allow worker switching while work is queueing 2023-07-03 12:15:14 -04:00
videodev2.h media: Add NV15_4L4 pixel format 2023-06-09 16:14:40 +01:00
virtio_9p.h
virtio_balloon.h
virtio_blk.h virtio-blk: fix to match virtio spec 2023-04-04 11:01:57 -04:00
virtio_bt.h
virtio_config.h virtio: add VIRTIO_F_NOTIFICATION_DATA feature support 2023-04-21 03:02:35 -04:00
virtio_console.h
virtio_crypto.h
virtio_fs.h
virtio_gpio.h
virtio_gpu.h
virtio_i2c.h
virtio_ids.h
virtio_input.h
virtio_iommu.h
virtio_mem.h
virtio_mmio.h
virtio_net.h net: virtio_net: implement exact header length guest feature 2023-03-13 16:32:16 -07:00
virtio_pci.h
virtio_pcidev.h
virtio_pmem.h
virtio_ring.h
virtio_rng.h
virtio_scmi.h
virtio_scsi.h
virtio_snd.h
virtio_types.h
virtio_vsock.h
vm_sockets_diag.h
vm_sockets.h
vmcore.h
vsockmon.h
vt.h
vtpm_proxy.h
wait.h
watch_queue.h
watchdog.h
wireguard.h
wireless.h uapi: wireless: Replace zero-length array with flexible-array member 2023-05-28 19:07:48 -06:00
wmi.h
wwan.h
x25.h
xattr.h
xdp_diag.h
xfrm.h
xilinx-v4l2-controls.h
zorro_ids.h
zorro.h