twx-linux/include/uapi/linux
Nikolay Borisov 7239ff4b2b btrfs: Introduce support for FSID change without metadata rewrite
This field is going to be used when the user wants to change the UUID
of the filesystem without having to rewrite all metadata blocks. This
field adds another level of indirection such that when the FSID is
changed what really happens is the current UUID (the one with which the
fs was created) is copied to the 'metadata_uuid' field in the superblock
as well as a new incompat flag is set METADATA_UUID. When the kernel
detects this flag is set it knows that the superblock in fact has 2
UUIDs:

1. Is the UUID which is user-visible, currently known as FSID.
2. Metadata UUID - this is the UUID which is stamped into all on-disk
   datastructures belonging to this file system.

When the new incompat flag is present device scanning checks whether
both fsid/metadata_uuid of the scanned device match any of the
registered filesystems. When the flag is not set then both UUIDs are
equal and only the FSID is retained on disk, metadata_uuid is set only
in-memory during mount.

Additionally a new metadata_uuid field is also added to the fs_info
struct. It's initialised either with the FSID in case METADATA_UUID
incompat flag is not set or with the metdata_uuid of the superblock
otherwise.

This commit introduces the new fields as well as the new incompat flag
and switches all users of the fsid to the new logic.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
[ minor updates in comments ]
Signed-off-by: David Sterba <dsterba@suse.com>
2018-12-17 14:51:37 +01:00
..
android binder: Add BINDER_GET_NODE_INFO_FOR_REF ioctl. 2018-09-14 15:22:48 +02:00
byteorder
caif
can
cifs
dvb
genwqe
hdlc
hsi
iio
isdn
mmc
netfilter Revert "netfilter: nft_numgen: add map lookups for numgen random operations" 2018-10-29 11:11:33 +01:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd
raid
sched
spi
sunrpc
tc_act
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
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 Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2018-08-15 22:54:12 -07:00
auto_dev-ioctl.h
auto_fs4.h
auto_fs.h autofs: add AUTOFS_EXP_FORCED flag 2018-08-22 10:52:49 -07:00
auxvec.h
ax25.h
b1lli.h
batadv_packet.h
batman_adv.h
baycom.h
bcache.h
bcm933xx_hcs.h
bfs_fs.h
binfmts.h
blkpg.h
blktrace_api.h
blkzoned.h block: Introduce BLKGETNRZONES ioctl 2018-10-25 11:17:40 -06:00
bpf_common.h
bpf_perf_event.h
bpf.h bpf: Improve socket lookup reuseport documentation 2018-11-30 17:17:38 -08:00
bpfilter.h
bpqether.h
bsg.h
bt-bmc.h
btf.h
btrfs_tree.h btrfs: Introduce support for FSID change without metadata rewrite 2018-12-17 14:51:37 +01:00
btrfs.h btrfs: Introduce support for FSID change without metadata rewrite 2018-12-17 14:51:37 +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 - Implement a generic crypto statistics 2018-09-28 12:46:25 +08:00
cuda.h
cyclades.h
cycx_cfm.h
dcbnl.h
dccp.h
devlink.h
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlm.h
dlmconstants.h
dm-ioctl.h
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 Move EM_RISCV into elf-em.h 2018-10-31 12:13:47 -07:00
elf-fdpic.h
elf.h
elfcore.h
errno.h
errqueue.h
erspan.h
ethtool.h ethtool: drop get_settings and set_settings callbacks 2018-08-29 19:46:10 -07:00
eventpoll.h
fadvise.h
falloc.h
fanotify.h fanotify: support reporting thread id instead of process id 2018-10-08 13:48:45 +02:00
fb.h
fcntl.h
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 crypto: speck - remove Speck 2018-09-04 11:35:03 +08:00
fsi.h
fsl_hypervisor.h
fsmap.h
fuse.h fuse: enable caching of symlinks 2018-10-15 15:43:07 +02: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
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
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
if_bridge.h
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 net: bridge: add support for per-port vlan stats 2018-10-12 10:18:58 -07: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
if_tunnel.h
if_vlan.h
if_x25.h
if_xdp.h
if.h
ife.h
igmp.h
ila.h
in6.h ipv6: Add sockopt IPV6_MULTICAST_ALL analogue to IP_MULTICAST_ALL 2018-09-13 08:17:27 -07:00
in_route.h
in.h
inet_diag.h
inotify.h
input-event-codes.h Input: restore EV_ABS ABS_RESERVED 2018-12-07 15:13:40 +01:00
input.h
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
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 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 uapi: fix more linux/kfd_ioctl.h userspace compilation errors 2018-11-05 15:46:51 -05:00
kvm_para.h
kvm.h KVM/arm updates for 4.20 2018-10-19 15:24:24 +02:00
l2tp.h
libc-compat.h
lightnvm.h
limits.h
lirc.h
llc.h
loop.h
lp.h
lwtunnel.h
magic.h xfs: add a define for statfs magic to uapi 2018-10-18 17:20:19 +11:00
major.h
map_to_7segment.h
matroxfb.h
max2175.h
mdio.h
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 mm/hugetlb: add mmap() encodings for 32MB and 512MB page sizes 2018-10-05 16:32:04 -07:00
mmtimer.h
module.h
mpls_iptunnel.h
mpls.h
mqueue.h
mroute6.h
mroute.h
msdos_fs.h
msg.h
mtio.h
n_r3964.h
nbd-netlink.h
nbd.h
ncsi.h net/ncsi: Extend NC-SI Netlink interface to allow user space to send NC-SI command 2018-10-15 22:00:59 -07:00
ndctl.h UAPI: ndctl: Remove use of PAGE_SIZE 2018-10-17 13:56:58 -07:00
neighbour.h net: bridge: add support for sticky fdb entries 2018-09-12 20:30:03 -07:00
net_dropmon.h
net_namespace.h
net_tstamp.h
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_ipv4.h
netfilter_ipv6.h
netfilter.h
netlink_diag.h
netlink.h netlink: Add new socket option to enable strict checking on dumps 2018-10-08 10:39:04 -07: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: Add per peer statistics to compute FCS error rate 2018-10-12 12:56:34 +02:00
nsfs.h
nubus.h
nvme_ioctl.h
nvram.h
omap3isp.h
omapfb.h
oom.h
openvswitch.h
packet_diag.h
param.h
parport.h
patchkey.h
pci_regs.h PCI: Add support for Immediate Readiness 2018-09-28 12:47:34 -05:00
pci.h
pcitest.h
perf_event.h perf tools: Don't clone maps from parent when synthesizing forks 2018-10-31 10:18:01 -03:00
personality.h
pfkeyv2.h
pg.h
phantom.h
phonet.h
pkt_cls.h net: sched: cls_flower: dump offload count value 2018-09-10 10:35:15 -07:00
pkt_sched.h tc: Add support for configuring the taprio scheduler 2018-10-04 13:52:23 -07:00
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 x86/speculation: Add prctl() control for indirect branch speculation 2018-11-28 11:57:13 +01:00
psample.h
psci.h
psp-sev.h
ptp_clock.h
ptrace.h
qemu_fw_cfg.h
qnx4_fs.h
qnxtypes.h
qrtr.h
quota.h
radeonfb.h
random.h
raw.h
rds.h uapi: Fix linux/rds.h userspace compilation errors. 2018-09-02 16:14:44 -07: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: define SCTP_SS_DEFAULT for Stream schedulers 2018-11-03 19:40:29 -07:00
sdla.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 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
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
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
tee.h
termios.h
thermal.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
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 rxrpc: Use the UDP encap_rcv hook 2018-10-08 15:45:18 +01: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
v4l2-controls.h media: mpeg2-ctrls.h: move MPEG2 state controls to non-public header 2018-12-05 13:06:31 -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 updates for v4.20 2018-10-31 11:01:38 -07:00
vhost.h vhost: fix VHOST_GET_BACKEND_FEATURES ioctl request definition 2018-09-03 21:23:24 -07:00
videodev2.h media: mpeg2-ctrls.h: move MPEG2 state controls to non-public header 2018-12-05 13:06:31 -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_config.h
virtio_console.h
virtio_crypto.h
virtio_gpu.h
virtio_ids.h
virtio_input.h
virtio_mmio.h
virtio_net.h
virtio_pci.h
virtio_ring.h
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
xfrm.h
xilinx-v4l2-controls.h
zorro_ids.h
zorro.h