twx-linux/include/uapi/linux
Ian Kent 433f9d76a0 autofs: add per dentry expire timeout
Add ability to set per-dentry mount expire timeout to autofs.

There are two fairly well known automounter map formats, the autofs
format and the amd format (more or less System V and Berkley).

Some time ago Linux autofs added an amd map format parser that
implemented a fair amount of the amd functionality. This was done
within the autofs infrastructure and some functionality wasn't
implemented because it either didn't make sense or required extra
kernel changes. The idea was to restrict changes to be within the
existing autofs functionality as much as possible and leave changes
with a wider scope to be considered later.

One of these changes is implementing the amd options:
1) "unmount", expire this mount according to a timeout (same as the
   current autofs default).
2) "nounmount", don't expire this mount (same as setting the autofs
   timeout to 0 except only for this specific mount) .
3) "utimeout=<seconds>", expire this mount using the specified
   timeout (again same as setting the autofs timeout but only for
   this mount).

To implement these options per-dentry expire timeouts need to be
implemented for autofs indirect mounts. This is because all map keys
(mounts) for autofs indirect mounts use an expire timeout stored in
the autofs mount super block info. structure and all indirect mounts
use the same expire timeout.

Now I have a request to add the "nounmount" option so I need to add
the per-dentry expire handling to the kernel implementation to do this.

The implementation uses the trailing path component to identify the
mount (and is also used as the autofs map key) which is passed in the
autofs_dev_ioctl structure path field. The expire timeout is passed
in autofs_dev_ioctl timeout field (well, of the timeout union).

If the passed in timeout is equal to -1 the per-dentry timeout and
flag are cleared providing for the "unmount" option. If the timeout
is greater than or equal to 0 the timeout is set to the value and the
flag is also set. If the dentry timeout is 0 the dentry will not expire
by timeout which enables the implementation of the "nounmount" option
for the specific mount. When the dentry timeout is greater than zero it
allows for the implementation of the "utimeout=<seconds>" option.

Signed-off-by: Ian Kent <raven@themaw.net>
Link: https://lore.kernel.org/r/20240814090231.963520-1-raven@themaw.net
Signed-off-by: Christian Brauner <brauner@kernel.org>
2024-08-30 08:22:36 +02:00
..
android
byteorder
caif
can can: isotp: remove ISO 15675-2 specification version where possible 2024-06-20 11:52:56 +02:00
cifs
dvb media: dvb: Fix dtvs_stats packing. 2024-04-15 13:42:38 +02:00
genwqe
hdlc
hsi
iio iio: core: Add new DMABUF interface infrastructure 2024-06-30 11:29:17 +01:00
isdn
media/raspberrypi media: uapi: pisp_be_config: Add extra config fields 2024-07-12 10:11:43 +02:00
misc
mmc
netfilter netfilter: nf_tables: rise cap on SELinux secmark context 2024-06-26 00:54:53 +02:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd
raid
sched
spi
sunrpc
surface_aggregator
tc_act net: sched: Annotate struct tc_pedit with __counted_by 2024-02-19 10:58:24 +00:00
tc_ematch
usb usb: gadget: functionfs: Add DMABUF import interface 2024-02-17 17:00:09 +01:00
a.out.h
acct.h
acrn.h
adb.h
adfs_fs.h
affs_hardblocks.h
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
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
audit.h
auto_dev-ioctl.h
auto_fs4.h
auto_fs.h autofs: add per dentry expire timeout 2024-08-30 08:22:36 +02:00
auxvec.h uapi/auxvec: Define AT_HWCAP3 and AT_HWCAP4 aux vector, entries 2024-02-16 12:42:59 +11:00
ax25.h
batadv_packet.h
batman_adv.h
baycom.h
bcm933xx_hcs.h
bfs_fs.h
binfmts.h
bits.h
blkpg.h
blktrace_api.h
blkzoned.h
bpf_common.h
bpf_perf_event.h
bpf.h bpf: Add CHECKSUM_COMPLETE to bpf test progs 2024-06-13 14:29:47 +02:00
bpqether.h
bsg.h
bt-bmc.h
btf.h
btrfs_tree.h btrfs: remove raid-stripe-tree encoding field from stripe_extent 2024-07-11 15:33:28 +02:00
btrfs.h btrfs: qgroup: validate btrfs_qgroup_inherit parameter 2024-03-05 17:13:24 +01:00
cachefiles.h
can.h
capability.h
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 connector: Fix invalid conversion in cn_proc.h 2024-05-24 10:36:55 +01:00
coda.h
coff.h
comedi.h
connector.h
const.h
coresight-stm.h
counter.h
cramfs_fs.h
cryptouser.h crypto: remove CONFIG_CRYPTO_STATS 2024-04-02 10:49:38 +08:00
cuda.h
cxl_mem.h cxl/mbox: Add Clear Log mailbox command 2024-04-30 08:48:10 -07:00
cyclades.h
cycx_cfm.h
dcbnl.h
dccp.h
devlink.h devlink: Support setting max_io_eqs 2024-04-08 14:10:45 +01:00
dlm_device.h
dlm_plock.h
dlm.h dlm: introduce DLM_LSFL_SOFTIRQ_SAFE 2024-06-11 12:57:49 -05:00
dlmconstants.h
dm-ioctl.h
dm-log-userspace.h
dma-buf.h
dma-heap.h dma-buf: align fd_flags and heap_flags with dma_heap_allocation_data 2024-06-05 14:52:15 +05:30
dns_resolver.h
dpll.h
dqblk_xfs.h
dw100.h
edd.h
efs_fs_sb.h
elf-em.h
elf-fdpic.h
elf.h arm64/ptrace: Expose FPMR via ptrace 2024-03-07 17:14:53 +00:00
errno.h
errqueue.h
erspan.h
ethtool_netlink.h net: ethtool: Add new power limit get and set features 2024-07-05 18:30:00 -07:00
ethtool.h net: phy: bcm54811: New link mode for BroadR-Reach 2024-07-14 20:38:34 -07:00
eventfd.h
eventpoll.h eventpoll: Add epoll ioctl for epoll_params 2024-02-14 11:01:01 +00:00
ext4.h
f2fs.h
fadvise.h
falloc.h
fanotify.h fanotify: Fix misspelling of "writable" 2024-03-06 13:13:05 +01:00
fb.h
fcntl.h fcntl: add F_CREATED_QUERY 2024-08-19 13:44:34 +02:00
fd.h
fdreg.h
fib_rules.h
fiemap.h
filter.h
firewire-cdev.h
firewire-constants.h
fou.h
fpga-dfl.h
fs.h - 875fa64577da ("mm/hugetlb_vmemmap: fix race with speculative PFN 2024-07-21 17:15:46 -07:00
fscrypt.h
fsi.h
fsl_hypervisor.h
fsl_mc.h
fsmap.h
fsverity.h
fuse.h fuse: Use the high bit of request ID for indicating resend requests 2024-03-06 09:56:35 +01:00
futex.h
gameport.h
gen_stats.h
genetlink.h
gfs2_ondisk.h
gpio.h gpio: uapi: clarify default_values being logical 2024-02-15 08:44:57 +01:00
gsmmux.h
gtp.h gtp: add IPv6 support 2024-05-07 01:35:57 +02:00
handshake.h
hash_info.h
hdlc.h
hdlcdrv.h
hdreg.h
hid.h
hiddev.h
hidraw.h
hpet.h
hsr_netlink.h
hw_breakpoint.h
hyperv.h
i2c-dev.h
i2c.h
i2o-dev.h
i8k.h
icmp.h
icmpv6.h netfilter: conntrack: fix ct-state for ICMPv6 Multicast Router Discovery 2024-05-06 11:13:56 +02:00
idxd.h
if_addr.h
if_addrlabel.h
if_alg.h
if_arcnet.h
if_arp.h
if_bonding.h
if_bridge.h
if_cablemodem.h
if_eql.h
if_ether.h
if_fc.h
if_fddi.h
if_hippi.h
if_infiniband.h
if_link.h gtp: add IPv6 support 2024-05-07 01:35:57 +02:00
if_ltalk.h
if_macsec.h
if_packet.h
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_slip.h
if_team.h uapi: team: use header file generated from YAML spec 2024-04-02 18:24:33 -07:00
if_tun.h
if_tunnel.h pfcp: always set pfcp metadata 2024-04-01 10:49:28 +01:00
if_vlan.h
if_x25.h
if_xdp.h xsk: Require XDP_UMEM_TX_METADATA_LEN to actuate tx_metadata_len 2024-07-25 11:57:27 +02:00
if.h
ife.h
igmp.h
ila.h
in6.h uapi: in6: replace temporary label with rfc9486 2024-02-27 18:22:49 -08:00
in_route.h
in.h net/smc: Introduce IPPROTO_SMC 2024-06-17 13:14:09 +01:00
inet_diag.h
inotify.h inotify: Fix misspelling of "writable" 2024-03-06 13:13:00 +01:00
input-event-codes.h input: Add support for "Do Not Disturb" 2024-06-07 11:08:07 +02:00
input.h
io_uring.h io_uring: fix user_data field name in comment 2024-08-16 12:31:26 -06:00
ioam6_genl.h uapi: ioam6: API for netlink multicast events 2024-02-28 11:19:41 +00:00
ioam6_iptunnel.h
ioam6.h
ioctl.h
iommufd.h iommufd: Put constants for all the uAPI enums 2024-07-15 09:44:54 -03:00
ioprio.h
ip6_tunnel.h
ip_vs.h
ip.h
ipc.h
ipmi_bmc.h
ipmi_msgdefs.h
ipmi_ssif_bmc.h
ipmi.h
ipsec.h
ipv6_route.h
ipv6.h
irqnr.h
iso_fs.h
isst_if.h
ivtv.h
ivtvfb.h
jffs2.h
joystick.h
kcm.h
kcmp.h
kcov.h
kd.h Revert "VT: Use macros to define ioctls" 2024-06-01 07:28:21 +02:00
kdev_t.h
kernel-page-flags.h
kernel.h
kernelcapi.h
kexec.h crash: add a new kexec flag for hotplug support 2024-04-23 14:59:01 +10:00
keyboard.h
keyctl.h
kfd_ioctl.h drm/amdkfd: enable single alu ops for gfx12 2024-05-02 16:18:13 -04:00
kfd_sysfs.h drm/amdkfd: enable single alu ops for gfx12 2024-05-02 16:18:13 -04:00
kvm_para.h
kvm.h KVM x86 misc changes for 6.11 2024-07-16 09:53:05 -04:00
l2tp.h
landlock.h landlock: Various documentation improvements 2024-07-18 08:27:47 +02:00
libc-compat.h
limits.h
lirc.h
llc.h
loadpin.h
loop.h
lp.h
lsm.h evm: Move to LSM infrastructure 2024-02-15 23:43:47 -05:00
lwtunnel.h
magic.h bcachefs: Move BCACHEFS_STATFS_MAGIC value to UAPI magic.h 2024-05-08 17:29:24 -04:00
major.h
map_to_7segment.h
map_to_14segment.h
matroxfb.h
max2175.h
mctp.h net: mctp: provide a more specific tag allocation ioctl 2024-02-22 13:32:55 +01:00
mdio.h net: phy: Add BaseT1 auto-negotiation constants 2024-02-21 14:56:58 -08:00
media-bus-format.h media: uapi: Add generic serial metadata mbus formats 2024-04-29 14:56:36 +02:00
media.h
mei_uuid.h
mei.h
membarrier.h
memfd.h
mempolicy.h mm/mempolicy: introduce MPOL_WEIGHTED_INTERLEAVE for weighted interleaving 2024-02-22 10:24:46 -08:00
mii.h
minix_fs.h
mman.h mm: add MAP_DROPPABLE for designating always lazily freeable mappings 2024-07-19 20:22:12 +02:00
mmtimer.h
module.h
mount.h fs: export mount options via statmount() 2024-06-28 14:36:43 +02:00
mpls_iptunnel.h
mpls.h
mptcp_pm.h
mptcp.h mptcp: add last time fields in mptcp_info 2024-04-11 08:19:54 -07:00
mqueue.h
mroute6.h
mroute.h
mrp_bridge.h
msdos_fs.h
msg.h
mtio.h
nbd-netlink.h
nbd.h
ncsi.h
ndctl.h
neighbour.h
net_dropmon.h
net_namespace.h
net_tstamp.h
net.h
netconf.h
netdev.h netdev: add qstat for csum complete 2024-05-30 12:15:56 +02: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 net: nexthop: Expose nexthop group HW stats to user space 2024-03-08 10:35:47 +00:00
nfc.h
nfs2.h
nfs3.h
nfs4_mount.h
nfs4.h NFSv4: Detect support for OPEN4_SHARE_ACCESS_WANT_OPEN_XOR_DELEGATION 2024-07-08 13:47:25 -04:00
nfs_fs.h
nfs_idmap.h
nfs_mount.h
nfs.h NFS/knfsd: Remove the invalid NFS error 'NFSERR_OPNOTSUPP' 2024-05-06 12:47:24 -04:00
nfsacl.h
nfsd_netlink.h nfsd: new netlink ops to get/set server pool_mode 2024-07-08 14:10:05 -04:00
nilfs2_api.h
nilfs2_ondisk.h
nitro_enclaves.h
nl80211-vnd-intel.h
nl80211.h wifi: cfg80211: add support for advertising multiple radios belonging to a wiphy 2024-07-09 11:29:59 +02:00
npcm-video.h
nsfs.h nsfs: fix ioctl declaration 2024-08-12 22:03:26 +02:00
nsm.h
ntsync.h ntsync: Introduce NTSYNC_IOC_SEM_POST. 2024-04-11 15:34:40 +02:00
nubus.h
nvme_ioctl.h
nvram.h
omap3isp.h
omapfb.h
oom.h
openat2.h
openvswitch.h net: openvswitch: store sampling probability in cb. 2024-07-05 17:45:47 -07:00
packet_diag.h
papr_pdsm.h powerpc/papr_scm: Move duplicate definitions to common header files 2024-04-25 12:37:12 -07:00
param.h
parport.h
patchkey.h
pci_regs.h Merge branch 'pci/doe' 2024-05-16 18:14:09 -05:00
pci.h
pcitest.h
perf_event.h perf/x86/intel: Support new data source for Lunar Lake 2024-07-04 16:00:38 +02:00
personality.h
pfkeyv2.h
pfrut.h
pg.h
phantom.h
phonet.h
pidfd.h pidfs: allow retrieval of namespace file descriptors 2024-06-28 10:37:29 +02:00
pkt_cls.h net/sched: cls_flower: rework TCA_FLOWER_KEY_ENC_FLAGS usage 2024-07-15 09:14:38 -07:00
pkt_sched.h
pktcdvd.h
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 RISC-V Patches for the 6.10 Merge Window, Part 1 2024-05-22 09:56:00 -07:00
psample.h net: psample: allow using rate as probability 2024-07-05 17:45:47 -07:00
psci.h
psp-dbc.h
psp-sev.h KVM: SEV: uapi: fix typo in SEV_RET_INVALID_CONFIG 2024-08-14 13:05:42 -04:00
ptp_clock.h
ptrace.h
qemu_fw_cfg.h
qnx4_fs.h
qnxtypes.h
qrtr.h
quota.h
radeonfb.h
random.h random: note that RNDGETPOOL was removed in 2.6.9-rc2 2024-07-19 20:22:48 +02:00
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 media: rkisp1: Add version enum for i.MX8MP ISP 2024-02-23 14:23:23 +02:00
romfs_fs.h
rose.h
route.h
rpl_iptunnel.h
rpl.h
rpmsg_types.h
rpmsg.h
rseq.h
rtc.h
rtnetlink.h
rxrpc.h
scc.h
sched.h
scif_ioctl.h
screen_info.h
sctp.h
seccomp.h
securebits.h
sed-opal.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
seg6.h
selinux_netlink.h
sem.h
serial_core.h
serial_reg.h
serial.h
serio.h
sev-guest.h KVM: SEV: Provide support for SNP_GUEST_REQUEST NAE event 2024-07-16 11:44:00 -04:00
shm.h
signal.h
signalfd.h
smc_diag.h
smc.h
smiapp.h
snmp.h xfrm: Add dir validation to "in" data path lookup 2024-05-01 10:06:27 +02:00
sock_diag.h
socket.h
sockios.h
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h fs: Add initial atomic write support info to statx 2024-06-20 15:19:17 -06:00
stddef.h uapi: stddef.h: Provide UAPI macros for __counted_by_{le, be} 2024-05-08 00:42:25 -07:00
stm.h
string.h
suspend_ioctls.h
swab.h
switchtec_ioctl.h
sync_file.h
synclink.h
sysctl.h
sysinfo.h
target_core_user.h
taskstats.h
tcp_metrics.h tcp_metrics: add netlink protocol spec in YAML 2024-07-01 09:44:27 +01:00
tcp.h tcp: socket option to check for MPTCP fallback to TCP 2024-05-13 14:48:04 -07:00
tdx-guest.h
tee.h tee: tstee: Add Trusted Services TEE driver 2024-04-03 14:03:09 +02:00
termios.h
thermal.h
thp7312.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
trace_mmap.h tracing: Have memmapped ring buffer use ioctl of "R" range 0x20-2F 2024-07-03 16:40:45 -04:00
tty_flags.h
tty.h
types.h
ublk_cmd.h ublk: add UBLK_CMD_DEL_DEV_ASYNC 2024-02-28 18:47:08 -07:00
udf_fs_i.h
udmabuf.h
udp.h udpencap: Remove Obsolete UDP_ENCAP_ESPINUDP_NON_IKE Support 2024-04-18 11:38:23 +02:00
uhid.h
uinput.h
uio.h
uleds.h
ultrasound.h
um_timetravel.h um: add shared memory optimisation for time-travel=ext 2024-07-03 12:24:54 +02:00
un.h
unistd.h
unix_diag.h
usbdevice_fs.h
usbip.h
user_events.h tracing/user_events: Introduce multi-format events 2024-03-18 10:13:03 -04:00
userfaultfd.h
userio.h
utime.h
utsname.h
uuid.h
uvcvideo.h
v4l2-common.h
v4l2-controls.h media: v4l2-ctrls: Add average QP control 2024-06-10 10:24:30 +02:00
v4l2-dv-timings.h
v4l2-mediabus.h media: uapi: Document which mbus format fields are valid for metadata 2024-04-29 14:56:36 +02:00
v4l2-subdev.h media: v4l: subdev: Add len_routes field to struct v4l2_subdev_routing 2024-04-29 14:56:37 +02:00
vbox_err.h
vbox_vmmdev_types.h
vboxguest.h
vdpa.h vDPA: code clean for vhost_vdpa uapi 2024-04-22 17:07:13 -04:00
vduse.h
vesa.h
veth.h
vfio_ccw.h
vfio_zdev.h
vfio.h
vhost_types.h
vhost.h vhost-vdpa: change ioctl # for VDPA_GET_VRING_SIZE 2024-04-08 04:11:04 -04:00
videodev2.h media: uapi: Add PiSP Compressed RAW Bayer formats 2024-06-27 13:06:47 +02:00
virtio_9p.h
virtio_balloon.h
virtio_blk.h
virtio_bt.h Bluetooth: HCI: Remove HCI_AMP support 2024-05-14 10:54:49 -04:00
virtio_config.h
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-mem: support suspend+resume 2024-05-22 08:31:15 -04:00
virtio_mmio.h
virtio_net.h virtio_net: introduce device stats feature and structures 2024-04-30 10:51:32 +02:00
virtio_pci.h virtio: uapi: Drop __packed attribute in linux/virtio_pci.h 2024-03-19 02:45:49 -04:00
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
wmi.h
wwan.h
x25.h
xattr.h
xdp_diag.h
xfrm.h xfrm: support sending NAT keepalives in ESP in UDP states 2024-06-26 13:22:42 +02:00
xilinx-v4l2-controls.h
zorro_ids.h m68k: amiga: Turn off Warp1260 interrupts during boot 2024-06-04 08:59:58 +02:00
zorro.h