linux_dsm_epyc7002/include/uapi/linux
David Howells 24dcb3d90a vfs: syscall: Add fsopen() to prepare for superblock creation
Provide an fsopen() system call that starts the process of preparing to
create a superblock that will then be mountable, using an fd as a context
handle.  fsopen() is given the name of the filesystem that will be used:

	int mfd = fsopen(const char *fsname, unsigned int flags);

where flags can be 0 or FSOPEN_CLOEXEC.

For example:

	sfd = fsopen("ext4", FSOPEN_CLOEXEC);
	fsconfig(sfd, FSCONFIG_SET_PATH, "source", "/dev/sda1", AT_FDCWD);
	fsconfig(sfd, FSCONFIG_SET_FLAG, "noatime", NULL, 0);
	fsconfig(sfd, FSCONFIG_SET_FLAG, "acl", NULL, 0);
	fsconfig(sfd, FSCONFIG_SET_FLAG, "user_xattr", NULL, 0);
	fsconfig(sfd, FSCONFIG_SET_STRING, "sb", "1", 0);
	fsconfig(sfd, FSCONFIG_CMD_CREATE, NULL, NULL, 0);
	fsinfo(sfd, NULL, ...); // query new superblock attributes
	mfd = fsmount(sfd, FSMOUNT_CLOEXEC, MS_RELATIME);
	move_mount(mfd, "", sfd, AT_FDCWD, "/mnt", MOVE_MOUNT_F_EMPTY_PATH);

	sfd = fsopen("afs", -1);
	fsconfig(fd, FSCONFIG_SET_STRING, "source",
		 "#grand.central.org:root.cell", 0);
	fsconfig(fd, FSCONFIG_CMD_CREATE, NULL, NULL, 0);
	mfd = fsmount(sfd, 0, MS_NODEV);
	move_mount(mfd, "", sfd, AT_FDCWD, "/mnt", MOVE_MOUNT_F_EMPTY_PATH);

If an error is reported at any step, an error message may be available to be
read() back (ENODATA will be reported if there isn't an error available) in
the form:

	"e <subsys>:<problem>"
	"e SELinux:Mount on mountpoint not permitted"

Once fsmount() has been called, further fsconfig() calls will incur EBUSY,
even if the fsmount() fails.  read() is still possible to retrieve error
information.

The fsopen() syscall creates a mount context and hangs it of the fd that it
returns.

Netlink is not used because it is optional and would make the core VFS
dependent on the networking layer and also potentially add network
namespace issues.

Note that, for the moment, the caller must have SYS_CAP_ADMIN to use
fsopen().

Signed-off-by: David Howells <dhowells@redhat.com>
cc: linux-api@vger.kernel.org
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2019-03-20 18:49:06 -04:00
..
android Merge 5.0-rc4 into char-misc-next 2019-01-28 08:13:52 +01:00
byteorder
caif
can
cifs
dvb
genwqe
hdlc
hsi
iio iio: Add modifiers for ethanol and H2 gases 2018-12-16 14:05:58 +00:00
isdn
mmc mmc: document 'Reliable Write' bit in uapi header 2018-12-17 08:26:24 +01:00
netfilter netfilter: nft_tunnel: Add NFTA_TUNNEL_MODE options 2019-02-04 14:39:58 +01:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd
raid
sched
spi
sunrpc
tc_act net: Move all TC actions identifiers to one place 2019-02-10 09:28:43 -08:00
tc_ematch
usb USB for v4.20 2018-10-05 08:32:01 -07:00
wimax
a.out.h
acct.h
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h
aio_abi.h aio: Comment use of IOCB_FLAG_IOPRIO aio flag 2018-11-19 19:03:43 -07:00
am437x-vpfe.h
apm_bios.h
arcfb.h
arm_sdei.h
aspeed-lpc-ctrl.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 Fix a handful of audit-related issue 2019-01-07 08:45:47 -08:00
auto_dev-ioctl.h
auto_fs4.h
auto_fs.h autofs: add ignore mount option 2019-03-07 18:32:01 -08:00
auxvec.h
ax25.h
b1lli.h
batadv_packet.h batman-adv: Fix typo "reseved" -> "reserved" 2019-02-09 14:27:47 +01:00
batman_adv.h batman-adv: Add throughput_override hardif genl configuration 2019-02-09 14:28:15 +01:00
baycom.h
bcache.h
bcm933xx_hcs.h
bfs_fs.h bfs: extra sanity checking and static inode bitmap 2019-01-04 13:13:47 -08:00
binfmts.h exec: increase BINPRM_BUF_SIZE to 256 2019-03-07 18:32:01 -08:00
blkpg.h
blktrace_api.h
blkzoned.h uapi: fix ioctl documentation 2019-01-24 11:11:42 -07:00
bpf_common.h
bpf_perf_event.h
bpf.h bpf: add bpf helper bpf_skb_ecn_set_ce 2019-03-02 10:48:27 -08:00
bpfilter.h
bpqether.h
bsg.h
bt-bmc.h
btf.h bpf: btf: fix struct/union/fwd types with kind_flag 2018-12-18 01:11:59 +01:00
btrfs_tree.h btrfs: Introduce support for FSID change without metadata rewrite 2018-12-17 14:51:37 +01:00
btrfs.h btrfs: introduce new ioctl to unregister a btrfs device 2019-02-25 14:13:30 +01:00
can.h
capability.h
capi.h
cciss_defs.h
cciss_ioctl.h
cdrom.h
cec-funcs.h
cec.h media: cec: add new tx/rx status bits to detect aborts/timeouts 2018-10-05 11:22:39 -04:00
cgroupstats.h
chio.h
cm4000_cs.h
cn_proc.h
coda_psdev.h
coda.h
coff.h
connector.h
const.h
coresight-stm.h
cramfs_fs.h
cryptouser.h crypto: user - rename err_cnt parameter 2018-12-07 14:15:00 +08:00
cuda.h
cyclades.h
cycx_cfm.h
dcbnl.h
dccp.h
devlink.h devlink: Rename devlink health attributes 2019-02-21 10:38:51 -08:00
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlm.h
dlmconstants.h
dm-ioctl.h dm: eliminate 'split_discard_bios' flag from DM target interface 2019-02-20 23:24:55 -05:00
dm-log-userspace.h
dma-buf.h
dn.h
dns_resolver.h dns: Allow the dns resolver to retrieve a server set 2018-10-04 09:40:52 -07:00
dqblk_xfs.h
edd.h
efs_fs_sb.h
elf-em.h arch/csky patches for 4.21-rc1 2019-01-05 09:50:07 -08:00
elf-fdpic.h
elf.h arm64: add ptrace regsets for ptrauth key management 2019-02-01 13:56:58 +00:00
elfcore.h
errno.h
errqueue.h errqueue.h: Include time_types.h 2019-02-14 11:51:51 -05:00
erspan.h
ethtool.h net: phy: improve definition of __ETHTOOL_LINK_MODE_MASK_NBITS 2019-02-24 17:33:59 -08:00
eventpoll.h
fadvise.h
falloc.h
fanotify.h fanotify: add support for create/attrib/move/delete events 2019-02-07 16:43:23 +01:00
fb.h fbdev: make FB_BACKLIGHT a tristate 2018-12-20 19:13:07 +01:00
fcntl.h vfs: syscall: Add open_tree(2) to reference or clone a mount 2019-03-20 18:49:06 -04:00
fd.h
fdreg.h
fib_rules.h
fiemap.h
filter.h
firewire-cdev.h FireWire: clean up firewire-cdev.h kernel-doc 2018-09-06 09:40:59 -06:00
firewire-constants.h
flat.h
fou.h
fpga-dfl.h
fs.h Add Adiantum support for fscrypt 2019-01-06 12:21:11 -08:00
fsi.h
fsl_hypervisor.h
fsmap.h
fuse.h fuse: support clients that don't implement 'opendir' 2019-02-13 13:15:15 +01:00
futex.h
gameport.h
gen_stats.h net/core: Add new basic hardware counter 2018-09-24 12:18:42 -07:00
genetlink.h
gfs2_ondisk.h
gigaset_dev.h
gpio.h gpio: uapi: Grammar s/array/array of/ 2018-09-13 10:46:24 +02:00
gsmmux.h
gtp.h
hash_info.h crypto: streebog - register Streebog in hash info for IMA 2018-11-16 14:09:40 +08:00
hdlc.h
hdlcdrv.h
hdreg.h
hid.h
hiddev.h
hidraw.h
hpet.h
hsr_netlink.h
hw_breakpoint.h
hyperv.h
hysdn_if.h
i2c-dev.h
i2c.h
i2o-dev.h
i8k.h
icmp.h
icmpv6.h bridge: Snoop Multicast Router Advertisements 2019-01-22 17:18:09 -08:00
if_addr.h if_addr: add IFA_TARGET_NETNSID 2018-09-05 22:27:11 -07:00
if_addrlabel.h
if_alg.h
if_arcnet.h
if_arp.h net: if_arp: use define instead of hard-coded value 2018-09-21 19:22:32 -07:00
if_bonding.h bonding: add support for xstats and export 3ad stats 2019-01-22 12:04:14 -08:00
if_bridge.h net: bridge: add no_linklocal_learn bool option 2018-11-27 15:04:15 -08:00
if_cablemodem.h
if_eql.h
if_ether.h
if_fc.h
if_fddi.h FDDI: defza: Add support for DEC FDDIcontroller 700 TURBOchannel adapter 2018-10-15 21:46:06 -07:00
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h bonding: add support for xstats and export 3ad stats 2019-01-22 12:04:14 -08:00
if_ltalk.h
if_macsec.h
if_packet.h packet: add sockopt to ignore outgoing packets 2018-09-05 22:09:37 -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 tun: implement carrier change 2018-11-30 17:16:38 -08:00
if_tunnel.h iptunnel: make TUNNEL_FLAGS available in uapi 2018-12-19 15:58:01 -08:00
if_vlan.h
if_x25.h
if_xdp.h
if.h
ife.h
igmp.h bridge: Snoop Multicast Router Advertisements 2019-01-22 17:18:09 -08:00
ila.h
in6.h net: ipv6: add socket option IPV6_ROUTER_ALERT_ISOLATE 2019-03-03 21:05:10 -08:00
in_route.h
in.h bridge: join all-snoopers multicast address 2019-01-22 17:18:08 -08:00
inet_diag.h inet_diag: fix reporting cgroup classid and fallback to priority 2019-02-12 13:35:57 -05:00
inotify.h
input-event-codes.h Merge branches 'for-4.20/upstream-fixes', 'for-4.21/core', 'for-4.21/hid-asus', 'for-4.21/hid-core', 'for-4.21/hid-cougar', 'for-4.21/hidraw', 'for-4.21/highres-wheel' and 'for-4.21/ish' into for-linus 2019-01-03 12:50:28 +01:00
input.h Input: input_event - fix the CONFIG_SPARC64 mixup 2019-01-24 00:38:39 -08:00
io_uring.h io_uring: add support for IORING_OP_POLL 2019-03-06 13:00:12 -07:00
ioctl.h
ip6_tunnel.h
ip_vs.h
ip.h
ipc.h
ipmi_bmc.h
ipmi_msgdefs.h
ipmi.h
ipsec.h
ipv6_route.h
ipv6.h
ipx.h
irqnr.h
isdn_divertif.h
isdn_ppp.h
isdn.h
isdnif.h
iso_fs.h
ivtv.h
ivtvfb.h
jffs2.h
joystick.h
Kbuild arch: remove stale comments "UAPI Header export list" 2019-01-06 09:46:51 +09:00
kcm.h
kcmp.h
kcov.h
kd.h
kdev_t.h
kernel-page-flags.h mm: convert PG_balloon to PG_offline 2019-03-05 21:07:14 -08:00
kernel.h
kernelcapi.h
kexec.h
keyboard.h
keyctl.h KEYS: Provide keyctls to drive the new key type ops for asymmetric keys [ver #2] 2018-10-26 09:30:46 +01:00
kfd_ioctl.h drm/amdkfd: Add DMABuf import functionality 2018-12-07 18:13:54 -05:00
kvm_para.h
kvm.h x86/kvm/hyper-v: Introduce KVM_GET_SUPPORTED_HV_CPUID 2018-12-14 17:59:54 +01:00
l2tp.h
libc-compat.h
lightnvm.h
limits.h linux/kernel.h: split *_MAX and *_MIN macros into <linux/limits.h> 2019-03-07 18:31:59 -08:00
lirc.h media: rc: rcmm decoder and encoder 2019-02-18 15:39:49 -05:00
llc.h
loop.h
lp.h
lwtunnel.h
magic.h binder: implement binderfs 2018-12-19 09:40:13 +01:00
major.h
map_to_7segment.h
matroxfb.h
max2175.h
mdio.h net: phy: Add generic support for 2.5GBaseT and 5GBaseT 2019-02-13 19:17:53 -05:00
media-bus-format.h
media.h media: uapi/linux/media.h: add request API 2018-08-31 11:04:23 -04:00
mei.h
membarrier.h
memfd.h mm/hugetlb: add mmap() encodings for 32MB and 512MB page sizes 2018-10-05 16:32:04 -07:00
mempolicy.h
meye.h
mic_common.h
mic_ioctl.h
mii.h
minix_fs.h
mman.h arch: move common mmap flags to linux/mman.h 2019-02-18 17:49:30 +01:00
mmtimer.h
module.h
mount.h vfs: syscall: Add fsopen() to prepare for superblock creation 2019-03-20 18:49:06 -04:00
mpls_iptunnel.h
mpls.h
mqueue.h
mroute6.h ipmr: ip6mr: Create new sockopt to clear mfc cache or vifs 2019-02-21 13:05:05 -08:00
mroute.h ipmr: ip6mr: Create new sockopt to clear mfc cache or vifs 2019-02-21 13:05:05 -08:00
msdos_fs.h fat: move MAX_FAT to fat.h and change it to inline function 2019-01-04 13:13:47 -08:00
msg.h
mtio.h
n_r3964.h
nbd-netlink.h
nbd.h
ncsi.h net/ncsi: Configure multi-package, multi-channel modes with failover 2018-11-17 21:09:49 -08:00
ndctl.h nfit: Add Hyper-V NVDIMM DSM command set to white list 2019-01-29 22:09:31 -08:00
neighbour.h neighbor: Add protocol attribute 2018-12-16 12:15:25 -08:00
net_dropmon.h
net_namespace.h netns: enable to dump full nsid translation table 2018-11-27 16:20:20 -08:00
net_tstamp.h net: Use __kernel_clockid_t in uapi net_stamp.h 2018-12-18 15:59:29 -08:00
net.h
netconf.h
netdevice.h
netfilter_arp.h
netfilter_bridge.h netfilter: bridge: define INT_MIN & INT_MAX in userspace 2018-10-25 10:25:22 +02:00
netfilter_decnet.h netfilter: remove NFC_* cache bits 2018-12-01 12:38:32 +01:00
netfilter_ipv4.h netfilter: remove NFC_* cache bits 2018-12-01 12:38:32 +01:00
netfilter_ipv6.h netfilter: remove NFC_* cache bits 2018-12-01 12:38:32 +01:00
netfilter.h netfilter: remove NFC_* cache bits 2018-12-01 12:38:32 +01:00
netlink_diag.h
netlink.h net: netlink: rename NETLINK_DUMP_STRICT_CHK -> NETLINK_GET_STRICT_CHK 2018-12-14 11:44:31 -08:00
netrom.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
nl80211.h nl80211: Allow set/del pmksa operations for AP 2019-01-25 21:09:21 +01:00
nsfs.h
nubus.h
nvme_ioctl.h nvme_ioctl.h: remove duplicate GPL boilerplate 2019-02-20 07:22:05 -07:00
nvram.h
omap3isp.h
omapfb.h
oom.h
openvswitch.h
packet_diag.h
param.h
parport.h
patchkey.h
pci_regs.h PCI/ATS: Add pci_ats_page_aligned() interface 2019-02-26 11:08:07 +01:00
pci.h
pcitest.h
perf_event.h perf, bpf: Introduce PERF_RECORD_BPF_EVENT 2019-01-21 17:00:57 -03:00
personality.h
pfkeyv2.h
pg.h
phantom.h
phonet.h
pkt_cls.h net: Change TCA_ACT_* to TCA_ID_* to match that of TCA_ID_POLICE 2019-02-10 09:28:43 -08:00
pkt_sched.h sch_cake: Permit use of connmarks as tin classifiers 2019-03-03 20:14:28 -08:00
pktcdvd.h
pmu.h m68k/mac: Fix PRAM accessors 2019-01-22 10:21:45 +01:00
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 x86/speculation: Add PR_SPEC_DISABLE_NOEXEC 2019-01-29 22:11:49 +01:00
psample.h
psci.h
psp-sev.h
ptp_clock.h ptp: uapi: change _IOW to IOWR in PTP_SYS_OFFSET_EXTENDED definition 2019-01-08 16:22:56 -05:00
ptrace.h
qemu_fw_cfg.h
qnx4_fs.h
qnxtypes.h
qrtr.h
quota.h
radeonfb.h
random.h
raw.h
rds.h rds: add type of service(tos) infrastructure 2019-02-04 14:59:12 -08:00
reboot.h
reiserfs_fs.h
reiserfs_xattr.h
resource.h
rfkill.h
rio_cm_cdev.h
rio_mport_cdev.h
romfs_fs.h
rose.h
route.h
rpmsg.h
rseq.h
rtc.h
rtnetlink.h
rxrpc.h
scc.h
sched.h
scif_ioctl.h
screen_info.h
sctp.h sctp: introduce SCTP_FUTURE/CURRENT/ALL_ASSOC 2019-01-30 00:44:06 -08:00
sdla.h
seccomp.h seccomp: add a return code to trap to userspace 2018-12-11 16:28:41 -08:00
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: Add Tegra Combined UART driver 2019-01-30 09:31:31 +01:00
serial_reg.h
serial.h tty/serial_core: add ISO7816 infrastructure 2018-10-02 13:38:55 -07:00
serio.h
shm.h mm/hugetlb: add mmap() encodings for 32MB and 512MB page sizes 2018-10-05 16:32:04 -07:00
signal.h
signalfd.h
smc_diag.h net/smc: retain old name for diag_mode field 2018-10-07 21:06:28 -07:00
smc.h
smiapp.h
snmp.h tcp: implement coalescing on backlog queue 2018-11-30 13:26:54 -08:00
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
synclink.h
sysctl.h kernel/sysctl: add panic_print into sysctl 2019-01-04 13:13:47 -08:00
sysinfo.h
target_core_user.h
taskstats.h delayacct: track delays from thrashing cache pages 2018-10-26 16:26:32 -07:00
tcp_metrics.h
tcp.h tcp: add SRTT to SCM_TIMESTAMPING_OPT_STATS 2018-11-17 20:34:36 -08:00
tee.h
termios.h
thermal.h
time_types.h Merge branch 'timers-2038-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-03-05 14:08:26 -08:00
time.h time: Add time_types.h 2019-02-14 11:51:51 -05:00
timerfd.h
times.h
timex.h y2038: remove struct definition redirects 2019-02-07 00:13:28 +01:00
tiocl.h
tipc_config.h
tipc_netlink.h
tipc_sockets_diag.h
tipc.h
tls.h net: tls: Add tls 1.3 support 2019-02-01 15:00:55 -08:00
toshiba.h
tty_flags.h
tty.h
types.h
udf_fs_i.h
udmabuf.h Add udmabuf misc device 2018-09-03 13:29:38 +02:00
udp.h udp: implement GRO for plain UDP sockets. 2018-11-07 16:23:04 -08:00
uhid.h
uinput.h
uio.h
uleds.h
ultrasound.h
un.h
unistd.h
unix_diag.h
usbdevice_fs.h
usbip.h
userfaultfd.h
userio.h
utime.h
utsname.h
uuid.h
uvcvideo.h
v4l2-common.h media: v4l2-common.h: put backwards compat defines under #ifndef __KERNEL__ 2018-11-20 13:22:40 -05:00
v4l2-controls.h media: v4l2-ctrl: Add control for h.264 chroma qp offset 2019-01-16 14:03:19 -05:00
v4l2-dv-timings.h
v4l2-mediabus.h
v4l2-subdev.h
vbox_err.h
vbox_vmmdev_types.h
vboxguest.h
veth.h
vfio_ccw.h
vfio.h vfio_pci: Add NVIDIA GV100GL [Tesla V100 SXM2] subdriver 2018-12-21 16:20:47 +11:00
vhost_types.h vhost: split structs into a separate header file 2018-12-19 18:23:49 -05:00
vhost.h vhost: split structs into a separate header file 2018-12-19 18:23:49 -05:00
videodev2.h media: v4l: Add 32-bit packed YUV formats 2019-02-18 14:31:01 -05:00
virtio_9p.h
virtio_balloon.h virtio-balloon: VIRTIO_BALLOON_F_PAGE_POISON 2018-10-24 20:57:55 -04:00
virtio_blk.h virtio_blk: add discard and write zeroes support 2018-12-19 18:23:49 -05:00
virtio_config.h virtio: support VIRTIO_F_ORDER_PLATFORM 2019-01-24 10:15:42 -05:00
virtio_console.h
virtio_crypto.h
virtio_gpu.h virtio-gpu: add VIRTIO_GPU_F_EDID feature 2018-11-21 12:06:59 +01:00
virtio_ids.h
virtio_input.h
virtio_mmio.h
virtio_net.h
virtio_pci.h
virtio_ring.h virtio: drop internal struct from UAPI 2019-02-05 15:29:48 -05:00
virtio_rng.h
virtio_scsi.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
wanrouter.h
watchdog.h
wimax.h
wireless.h
wmi.h
x25.h
xattr.h
xdp_diag.h xsk: add sock_diag interface for AF_XDP 2019-01-25 01:50:03 +01:00
xfrm.h
xilinx-v4l2-controls.h
zorro_ids.h
zorro.h