android_kernel_msm-6.1_noth.../include/uapi/linux
Prasanna Kumar Kalever 6497ef8df5 nbd: provide a way for userspace processes to identify device backends
Problem:
On reconfigure of device, there is no way to defend if the backend
storage is matching with the initial backend storage.

Say, if an initial connect request for backend "pool1/image1" got
mapped to /dev/nbd0 and the userspace process is terminated. A next
reconfigure request within NBD_ATTR_DEAD_CONN_TIMEOUT is allowed to
use /dev/nbd0 for a different backend "pool1/image2"

For example, an operation like below could be dangerous:

$ sudo rbd-nbd map --try-netlink rbd-pool/ext4-image
/dev/nbd0
$ sudo blkid /dev/nbd0
/dev/nbd0: UUID="bfc444b4-64b1-418f-8b36-6e0d170cfc04" TYPE="ext4"
$ sudo pkill -9 rbd-nbd
$ sudo rbd-nbd attach --try-netlink --device /dev/nbd0 rbd-pool/xfs-image
/dev/nbd0
$ sudo blkid /dev/nbd0
/dev/nbd0: UUID="d29bf343-6570-4069-a9ea-2fa156ced908" TYPE="xfs"

Solution:
Provide a way for userspace processes to keep some metadata to identify
between the device and the backend, so that when a reconfigure request is
made, we can compare and avoid such dangerous operations.

With this solution, as part of the initial connect request, backend
path can be stored in the sysfs per device config, so that on a reconfigure
request it's easy to check if the backend path matches with the initial
connect backend path.

Please note, ioctl interface to nbd will not have these changes, as there
won't be any reconfigure.

Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20210429102828.31248-1-prasanna.kalever@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2021-06-30 15:34:04 -06:00
..
android binder: tell userspace to dump current backtrace when detected oneway spamming 2021-04-10 10:52:04 +02:00
byteorder
caif
can
cifs
dvb media: dvb header files: move some headers to staging 2021-06-04 08:07:30 +02:00
genwqe
hdlc
hsi
iio iio: buffer: add ioctl() to support opening extra buffers for IIO device 2021-03-11 20:47:05 +00:00
isdn
misc bcm-vk: add bcm_vk UAPI 2021-01-25 18:44:44 +01:00
mmc
netfilter netfilter: xt_SECMARK: add new revision to fix structure layout 2021-05-03 23:02:44 +02:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd UAPI: nfsfh.h: Replace one-element array with flexible-array member 2021-03-31 15:59:14 -04:00
raid
sched
spi spi: Add SPI_NO_TX/RX support 2020-12-28 14:21:31 +00:00
sunrpc
surface_aggregator platform/surface: aggregator_cdev: Allow enabling of events from user-space 2021-06-16 17:47:53 +02:00
tc_act
tc_ematch
usb usb: webcam: Invalid size of Processing Unit Descriptor 2021-03-18 09:02:27 +01:00
a.out.h
acct.h
acrn.h virt: acrn: Introduce irqfd 2021-02-09 10:58:19 +01:00
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h
aio_abi.h
am437x-vpfe.h
apm_bios.h
arcfb.h
arm_sdei.h
aspeed-lpc-ctrl.h
aspeed-p2a-ctrl.h
atalk.h
atm.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_tcp.h
atm_zatm.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_fs.h
auto_fs4.h
auxvec.h
ax25.h
batadv_packet.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
batman_adv.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
baycom.h
bcache.h bcache: introduce BCH_FEATURE_INCOMPAT_LOG_LARGE_BUCKET_SIZE for large bucket 2021-01-09 09:21:03 -07:00
bcm933xx_hcs.h
bfs_fs.h
binfmts.h binfmt_misc: pass binfmt_misc flags to the interpreter 2021-02-15 18:28:30 +01:00
blkpg.h block: update a few comments in uapi/linux/blkpg.h 2021-04-02 11:18:30 -06:00
blktrace_api.h
blkzoned.h
bpf.h bpf: Add a bpf_snprintf helper 2021-04-19 15:27:36 -07:00
bpf_common.h
bpf_perf_event.h
bpfilter.h
bpqether.h
bsg.h
bt-bmc.h
btf.h bpf: Add BTF_KIND_FLOAT to uapi 2021-03-04 17:58:15 -08:00
btrfs.h btrfs: fix typos in comments 2021-06-22 14:11:57 +02:00
btrfs_tree.h btrfs: fix typos in comments 2021-06-22 14:11:57 +02:00
can.h can: uapi: can.h: mark union inside struct can_frame packed 2021-03-29 09:51:49 +02:00
capability.h capabilities: require CAP_SETFCAP to map uid 0 2021-04-20 14:28:33 -07:00
capi.h
cciss_defs.h
cciss_ioctl.h
ccs.h media: v4l: uapi: ccs: Add CCS controls for shading correction 2021-01-12 17:31:14 +01:00
cdrom.h
cec-funcs.h media: uapi/linux/cec-funcs.h: set delay to 1 if unnused 2021-06-02 14:08:09 +02:00
cec.h media: core headers: fix kernel-doc warnings 2021-03-22 10:22:22 +01:00
cfm_bridge.h
cgroupstats.h
chio.h
close_range.h
cm4000_cs.h
cn_proc.h
coda.h
coff.h
connector.h
const.h uapi: move constants from <linux/kernel.h> to <linux/const.h> 2020-12-15 12:13:36 -08:00
coresight-stm.h
cramfs_fs.h
cryptouser.h
cuda.h
cxl_mem.h cxl/mem: Add set of informational commands 2021-02-16 20:36:39 -08:00
cycx_cfm.h
dcbnl.h
dccp.h
devlink.h devlink: Support get and set state of port function 2021-01-22 11:32:08 -08:00
dlm.h
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlmconstants.h
dm-ioctl.h dm ioctl: return UUID in DM_LIST_DEVICES_CMD result 2021-03-26 14:53:41 -04:00
dm-log-userspace.h
dma-buf.h
dma-heap.h
dn.h
dns_resolver.h
dqblk_xfs.h quota: report warning limits for realtime space quotas 2021-03-18 17:03:54 +01:00
edd.h
efs_fs_sb.h
elf-em.h
elf-fdpic.h
elf.h arm64: Introduce prctl(PR_PAC_{SET,GET}_ENABLED_KEYS) 2021-04-13 17:31:44 +01:00
errno.h
errqueue.h
erspan.h
ethtool.h ethtool: add interface to read RMON stats 2021-04-16 16:59:20 -07:00
ethtool_netlink.h ethtool: add interface to read RMON stats 2021-04-16 16:59:20 -07:00
eventpoll.h
f2fs.h
fadvise.h
falloc.h
fanotify.h
fb.h
fcntl.h
fd.h floppy: cleanups: remove trailing whitespaces 2021-04-20 08:59:03 -06:00
fdreg.h
fib_rules.h
fiemap.h
filter.h
firewire-cdev.h include/linux: remove repeated words 2021-02-26 09:41:03 -08:00
firewire-constants.h
fou.h
fpga-dfl.h
fs.h block: uapi: fix comment about block device ioctl 2021-05-10 09:26:18 -06:00
fscrypt.h
fsi.h
fsl_hypervisor.h
fsl_mc.h bus: fsl-mc: add fsl-mc userspace support 2021-01-27 15:13:52 +01:00
fsmap.h
fsverity.h fs-verity: support reading signature with ioctl 2021-02-07 14:51:19 -08:00
fuse.h fuse: add a flag FUSE_SETXATTR_ACL_KILL_SGID to kill SGID 2021-04-14 10:40:57 +02:00
futex.h futex: Provide FUTEX_LOCK_PI2 to support clock selection 2021-06-22 16:42:09 +02:00
gameport.h
gen_stats.h
genetlink.h
gfs2_ondisk.h gfs2: Add trusted xattr support 2021-02-08 13:01:24 +01:00
gpio.h gpio: uapi: use the preferred SPDX license identifier 2021-02-15 11:43:33 +01:00
gsmmux.h
gtp.h Revert "GTP: add support for flow based tunneling API" 2021-02-04 09:29:57 -08:00
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: remove licence boilerplate from i2c-dev UAPI header 2021-01-22 09:58:57 +01:00
i2c.h i2c: uapi: add macro to describe support for all SMBus transfers 2021-01-22 09:59:00 +01:00
i2o-dev.h
i8k.h
icmp.h icmp: standardize naming of RFC 8335 PROBE constants 2021-04-28 13:42:23 -07:00
icmpv6.h ICMPV6: add support for RFC 8335 PROBE 2021-03-30 13:29:39 -07:00
idxd.h dmaengine: idxd: fix delta_rec and crc size field for completion record 2021-04-12 13:26:03 +05:30
if.h
if_addr.h
if_addrlabel.h
if_alg.h
if_arcnet.h
if_arp.h
if_bonding.h treewide: remove editor modelines and cruft 2021-05-07 00:26:34 -07:00
if_bridge.h
if_cablemodem.h
if_eql.h
if_ether.h
if_fc.h
if_fddi.h FDDI: if_fddi.h: Update my e-mail address 2021-03-10 12:45:16 -08:00
if_hippi.h
if_infiniband.h
if_link.h macvlan: Add nodst option to macvlan type source 2021-04-25 18:35:01 -07: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
if_tun.h
if_tunnel.h Revert "GTP: add support for flow based tunneling API" 2021-02-04 09:29:57 -08:00
if_vlan.h
if_x25.h
if_xdp.h
ife.h
igmp.h
ila.h
in.h icmp: don't send out ICMP messages with a source address of 0.0.0.0 2021-06-18 12:13:24 -07:00
in6.h
in_route.h
inet_diag.h
inotify.h
input-event-codes.h HID: hid-input: add mapping for emoji picker key 2021-05-05 14:31:05 +02:00
input.h include/linux: remove repeated words 2021-02-26 09:41:03 -08:00
io_uring.h io_uring: add feature flag for rsrc tags 2021-06-10 16:33:51 -06:00
ioctl.h
iommu.h iommu/vt-d: Enable write protect propagation from guest 2021-03-18 11:42:46 +01:00
ip.h
ip6_tunnel.h
ip_vs.h
ipc.h
ipmi.h
ipmi_bmc.h
ipmi_msgdefs.h
ipsec.h
ipv6.h net: allow user to set metric on default route learned via Router Advertisement 2021-01-26 18:39:45 -08:00
ipv6_route.h
ipx.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
kdev_t.h
kernel-page-flags.h
kernel.h uapi: move constants from <linux/kernel.h> to <linux/const.h> 2020-12-15 12:13:36 -08:00
kernelcapi.h
kexec.h RISC-V: Add EM_RISCV to kexec UAPI header 2021-04-26 08:25:20 -07:00
keyboard.h
keyctl.h
kfd_ioctl.h drm/amdkfd: Bump KFD API version 2021-03-23 23:40:55 -04:00
kvm.h KVM/arm64 updates for v5.14. 2021-06-25 11:24:24 -04:00
kvm_para.h KVM: X86: Introduce KVM_HC_MAP_GPA_RANGE hypercall 2021-06-17 14:25:39 -04:00
l2tp.h net: l2tp: reduce log level of messages in receive path, add counter instead 2021-03-03 16:55:02 -08:00
landlock.h landlock: Enable user space to infer supported features 2021-04-22 12:22:11 -07:00
libc-compat.h
lightnvm.h lightnvm: remove duplicate include in lightnvm.h 2021-04-13 09:16:12 -06:00
limits.h
lirc.h media: lirc: remove out of date comment 2021-05-21 15:03:50 +02:00
llc.h
loop.h
lp.h
lwtunnel.h
magic.h
major.h tty: cyclades, remove this orphan 2021-03-10 09:34:06 +01:00
map_to_7segment.h uapi: map_to_7segment: Remove licence boilerplate 2021-03-24 08:26:29 +01:00
matroxfb.h
max2175.h
mdio.h net: phy: add constants for 2.5G and 5G speed in PCS speed register 2021-04-08 13:15:33 -07:00
media-bus-format.h
media.h media: uapi: Add an entity type for Image Signal Processors 2021-01-12 17:05:37 +01:00
mei.h
membarrier.h
memfd.h
mempolicy.h mm/vmscan: move RECLAIM* bits to uapi header 2021-05-05 11:27:23 -07:00
meye.h
mii.h
minix_fs.h
mman.h
mmtimer.h
module.h
mount.h mount: Support "nosymfollow" in new mount api 2021-06-01 12:09:27 +02:00
mpls.h
mpls_iptunnel.h
mptcp.h mptcp: add mptcp reset option support 2021-04-02 14:21:50 -07:00
mqueue.h
mroute.h
mroute6.h uapi: move constants from <linux/kernel.h> to <linux/const.h> 2020-12-15 12:13:36 -08:00
mrp_bridge.h net: mrp: move struct definitions out of uapi 2021-01-23 12:38:42 -08:00
msdos_fs.h
msg.h
mtio.h
n_r3964.h
nbd-netlink.h nbd: provide a way for userspace processes to identify device backends 2021-06-30 15:34:04 -06:00
nbd.h
ncsi.h
ndctl.h
neighbour.h
net.h
net_dropmon.h
net_namespace.h
net_tstamp.h
netconf.h
netdevice.h
netfilter.h
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h uapi: move constants from <linux/kernel.h> to <linux/const.h> 2020-12-15 12:13:36 -08:00
netlink_diag.h
netrom.h
nexthop.h nexthop: Add netlink defines and enumerators for resilient NH groups 2021-03-11 16:12:59 -08:00
nfc.h
nfs.h
nfs2.h
nfs3.h NFSD: Update the SETATTR3args decoder to use struct xdr_stream 2021-01-25 09:36:25 -05:00
nfs4.h treewide: remove editor modelines and cruft 2021-05-07 00:26:34 -07:00
nfs4_mount.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h
nfsacl.h
nilfs2_api.h
nilfs2_ondisk.h
nitro_enclaves.h
nl80211.h nl80211: Add new RSNXE related nl80211 extended features 2021-04-19 12:04:37 +02:00
nsfs.h
nubus.h
nvme_ioctl.h
nvram.h
omap3isp.h
omapfb.h
oom.h
openat2.h fs: expose LOOKUP_CACHED through openat2() RESOLVE_CACHED 2021-01-04 11:42:26 -05:00
openvswitch.h
packet_diag.h
param.h
parport.h
patchkey.h
pci.h
pci_regs.h pci-v5.11-changes 2020-12-15 16:49:59 -08:00
pcitest.h
perf_event.h Merge branch 'for-v5.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2021-05-21 06:12:52 -10:00
personality.h
pfkeyv2.h
pg.h
phantom.h
phonet.h
pidfd.h
pkt_cls.h net/sched: act_police: add support for packet-per-second policing 2021-03-13 14:18:09 -08:00
pkt_sched.h sch_htb: Hierarchical QoS hardware offload 2021-01-22 20:41:29 -08:00
pktcdvd.h
pmu.h
poll.h
posix_acl.h
posix_acl_xattr.h
posix_types.h
ppdev.h
ppp-comp.h
ppp-ioctl.h ppp: Fix PPPIOCUNBRIDGECHAN request number 2020-12-21 17:36:48 -08:00
ppp_defs.h
pps.h
pr.h
prctl.h sched: prctl() core-scheduling interface 2021-05-12 11:43:31 +02:00
psample.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-03-25 15:31:22 -07:00
psci.h
psp-sev.h
ptp_clock.h
ptrace.h rseq, ptrace: Add PTRACE_GET_RSEQ_CONFIGURATION request 2021-03-17 16:15:39 +01:00
qemu_fw_cfg.h
qnx4_fs.h
qnxtypes.h
qrtr.h
quota.h
radeonfb.h
random.h
raw.h
rds.h
reboot.h
reiserfs_fs.h
reiserfs_xattr.h
remoteproc_cdev.h
resource.h
rfkill.h rfkill: revert back to old userspace API by default 2021-04-08 10:14:45 +02:00
rio_cm_cdev.h
rio_mport_cdev.h
rkisp1-config.h media: rkisp1: uapi: document which flags/structs relate to statistics config 2021-04-06 10:29:56 +02:00
romfs_fs.h
rose.h
route.h
rpl.h uapi: fix big endian definition of ipv6_rpl_sr_hdr 2021-01-25 15:14:16 -08:00
rpl_iptunnel.h
rpmsg.h rpmsg: Add short description of the IOCTL defined in UAPI. 2021-03-17 14:16:26 -05:00
rpmsg_types.h
rseq.h
rtc.h rtc: introduce features bitfield 2021-01-16 23:19:26 +01:00
rtnetlink.h Add Open Routing Protocol ID to rtnetlink.h 2021-03-24 16:31:23 -07:00
rxrpc.h
scc.h
sched.h
scif_ioctl.h
screen_info.h
sctp.h
seccomp.h seccomp: Support atomic "addfd + send reply" 2021-06-28 12:49:52 -07:00
securebits.h
sed-opal.h
seg6.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h seg6: add counters support for SRv6 Behaviors 2021-04-29 15:26:57 -07:00
selinux_netlink.h
sem.h
serial.h tty: cyclades, remove this orphan 2021-03-10 09:34:06 +01:00
serial_core.h tty: serial: Drop unused efm32 serial driver 2021-01-15 17:14:49 +01:00
serial_reg.h
serio.h
shm.h
signal.h
signalfd.h signalfd: Remove SIL_PERF_EVENT fields from signalfd_siginfo 2021-05-18 16:20:54 -05:00
smc.h
smc_diag.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
synclink.h
sysctl.h net: allow user to set metric on default route learned via Router Advertisement 2021-01-26 18:39:45 -08:00
sysinfo.h
target_core_user.h
taskstats.h
tcp.h tcp: Sanitize CMSG flags and reserved args in tcp_zerocopy_receive. 2021-02-11 18:25:05 -08:00
tcp_metrics.h
tee.h tee: fix some comment typos in header files 2021-02-02 14:50:15 +01:00
termios.h tty: drop termiox user definitions 2021-01-07 16:17:32 +01:00
thermal.h thermal: Fix spelling mistake "disabed" -> "disabled" 2021-03-11 12:13:08 +01:00
time.h
time_types.h
timerfd.h
times.h
timex.h
tiocl.h
tipc.h
tipc_config.h
tipc_netlink.h
tipc_sockets_diag.h
tls.h
toshiba.h
tty.h
tty_flags.h tty: add ASYNC_SPLIT_TERMIOS to deprecation mask 2021-04-10 10:36:34 +02:00
types.h
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
userfaultfd.h userfaultfd: uapi: fix UFFDIO_CONTINUE ioctl request definition 2021-06-25 10:53:26 -07:00
userio.h
utime.h
utsname.h
uuid.h
uvcvideo.h media: vpbe_osd.h/uvcvideo.h includes: fix trivial kernel-doc warnings 2021-03-22 10:24:07 +01:00
v4l2-common.h
v4l2-controls.h media: vicodec: Use _BITUL() macro in UAPI headers 2021-06-02 14:09:05 +02:00
v4l2-dv-timings.h
v4l2-mediabus.h
v4l2-subdev.h media: core headers: fix kernel-doc warnings 2021-03-22 10:22:22 +01:00
vbox_err.h
vbox_vmmdev_types.h
vboxguest.h
vdpa.h vdpa: Enable user to query vdpa device info 2021-02-23 07:52:56 -05:00
veth.h
vfio.h vfio/pci: Revert nvlink removal uAPI breakage 2021-05-05 10:19:41 -06:00
vfio_ccw.h
vfio_zdev.h
vhost.h
vhost_types.h
videodev2.h media: uapi: move MPEG-2 stateless controls out of staging 2021-05-23 19:21:31 +02:00
virtio_9p.h
virtio_balloon.h
virtio_blk.h
virtio_bt.h Bluetooth: Add support for virtio transport driver 2021-04-08 12:26:34 +02:00
virtio_config.h
virtio_console.h
virtio_crypto.h
virtio_fs.h
virtio_gpu.h
virtio_ids.h Bluetooth: Fix VIRTIO_ID_BT assigned number 2021-06-03 14:01:55 -07:00
virtio_input.h
virtio_iommu.h
virtio_mem.h
virtio_mmio.h
virtio_net.h
virtio_pci.h
virtio_pmem.h
virtio_ring.h
virtio_rng.h
virtio_scsi.h
virtio_snd.h ALSA: virtio: add virtio sound driver 2021-03-07 09:07:16 +01:00
virtio_types.h
virtio_vsock.h
vm_sockets.h vm_sockets: Add VMADDR_FLAG_TO_HOST vsock flag 2020-12-14 19:33:39 -08:00
vm_sockets_diag.h
vmcore.h
vsockmon.h
vt.h
vtpm_proxy.h
wait.h
watch_queue.h
watchdog.h
wireguard.h
wireless.h
wmi.h
x25.h
xattr.h
xdp_diag.h
xfrm.h
xilinx-v4l2-controls.h
zorro.h
zorro_ids.h