summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/btrfs-balance.88
-rw-r--r--Documentation/btrfs-balance.asciidoc2
-rw-r--r--Documentation/btrfs-check.86
-rw-r--r--Documentation/btrfs-convert.86
-rw-r--r--Documentation/btrfs-device.86
-rw-r--r--Documentation/btrfs-filesystem.86
-rw-r--r--Documentation/btrfs-find-root.86
-rw-r--r--Documentation/btrfs-image.86
-rw-r--r--Documentation/btrfs-inspect-internal.86
-rw-r--r--Documentation/btrfs-man5.asciidoc82
-rw-r--r--Documentation/btrfs-map-logical.86
-rw-r--r--Documentation/btrfs-property.86
-rw-r--r--Documentation/btrfs-qgroup.86
-rw-r--r--Documentation/btrfs-quota.86
-rw-r--r--Documentation/btrfs-receive.86
-rw-r--r--Documentation/btrfs-replace.86
-rw-r--r--Documentation/btrfs-rescue.86
-rw-r--r--Documentation/btrfs-restore.86
-rw-r--r--Documentation/btrfs-scrub.88
-rw-r--r--Documentation/btrfs-scrub.asciidoc5
-rw-r--r--Documentation/btrfs-select-super.86
-rw-r--r--Documentation/btrfs-send.86
-rw-r--r--Documentation/btrfs-subvolume.841
-rw-r--r--Documentation/btrfs-subvolume.asciidoc28
-rw-r--r--Documentation/btrfs.568
-rw-r--r--Documentation/btrfs.86
-rw-r--r--Documentation/btrfstune.8104
-rw-r--r--Documentation/btrfstune.asciidoc81
-rw-r--r--Documentation/fsck.btrfs.86
-rw-r--r--Documentation/mkfs.btrfs.86
30 files changed, 376 insertions, 171 deletions
diff --git a/Documentation/btrfs-balance.8 b/Documentation/btrfs-balance.8
index c686381..0fe8a9e 100644
--- a/Documentation/btrfs-balance.8
+++ b/Documentation/btrfs-balance.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-balance
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-BALANCE" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-BALANCE" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -229,7 +229,7 @@ be verbose and print balance filter arguments
.PP
\-f
.RS 4
-force reducing of metadata integrity, eg\&. when going from
+force a reduction of metadata integrity, eg\&. when going from
\fIraid1\fR
to
\fIsingle\fR
diff --git a/Documentation/btrfs-balance.asciidoc b/Documentation/btrfs-balance.asciidoc
index 536243b..bfb7674 100644
--- a/Documentation/btrfs-balance.asciidoc
+++ b/Documentation/btrfs-balance.asciidoc
@@ -101,7 +101,7 @@ act on system chunks (requires '-f'), see `FILTERS` section for details about 'f
-v::::
be verbose and print balance filter arguments
-f::::
-force reducing of metadata integrity, eg. when going from 'raid1' to 'single'
+force a reduction of metadata integrity, eg. when going from 'raid1' to 'single'
--background|--bg::::
run the balance operation asynchronously in the background, uses `fork`(2) to
start the process that calls the kernel ioctl
diff --git a/Documentation/btrfs-check.8 b/Documentation/btrfs-check.8
index da562a5..6cd6fb9 100644
--- a/Documentation/btrfs-check.8
+++ b/Documentation/btrfs-check.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-check
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-CHECK" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-CHECK" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/btrfs-convert.8 b/Documentation/btrfs-convert.8
index 7b5239a..c035ac3 100644
--- a/Documentation/btrfs-convert.8
+++ b/Documentation/btrfs-convert.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-convert
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-CONVERT" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-CONVERT" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/btrfs-device.8 b/Documentation/btrfs-device.8
index 082e66a..c8369f3 100644
--- a/Documentation/btrfs-device.8
+++ b/Documentation/btrfs-device.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-device
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-DEVICE" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-DEVICE" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/btrfs-filesystem.8 b/Documentation/btrfs-filesystem.8
index 94e4647..a305be1 100644
--- a/Documentation/btrfs-filesystem.8
+++ b/Documentation/btrfs-filesystem.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-filesystem
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-FILESYSTEM" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-FILESYSTEM" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/btrfs-find-root.8 b/Documentation/btrfs-find-root.8
index bda5d68..6b805a4 100644
--- a/Documentation/btrfs-find-root.8
+++ b/Documentation/btrfs-find-root.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-find-root
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-FIND\-ROOT" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-FIND\-ROOT" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/btrfs-image.8 b/Documentation/btrfs-image.8
index b97b846..1dc9439 100644
--- a/Documentation/btrfs-image.8
+++ b/Documentation/btrfs-image.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-image
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-IMAGE" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-IMAGE" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/btrfs-inspect-internal.8 b/Documentation/btrfs-inspect-internal.8
index 3cd467a..156a96a 100644
--- a/Documentation/btrfs-inspect-internal.8
+++ b/Documentation/btrfs-inspect-internal.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-inspect-internal
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-INSPECT\-INTE" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-INSPECT\-INTE" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/btrfs-man5.asciidoc b/Documentation/btrfs-man5.asciidoc
index c358cef..916311d 100644
--- a/Documentation/btrfs-man5.asciidoc
+++ b/Documentation/btrfs-man5.asciidoc
@@ -16,9 +16,11 @@ tools. Currently covers:
3. filesystem limits
-4. file attributes
+4. bootloader support
-5. control device
+5. file attributes
+
+6. control device
MOUNT OPTIONS
@@ -585,6 +587,13 @@ increased hardlink limit per file in a directory to 65536, older kernels
supported a varying number of hardlinks depending on the sum of all file name
sizes that can be stored into one metadata block
+*metadata_uuid*::
+(since: 5.0)
++
+the main filesystem UUID is the metadata_uuid, which stores the new UUID only
+in the superblock while all metadata blocks still have the UUID set at mkfs
+time, see `btrfstune`(8) for more
+
*mixed_backref*::
(since: 2.6.31)
+
@@ -624,6 +633,47 @@ ordinary directory. Note that this feature only depends on the kernel version.
+
reduced-size metadata for extent references, saves a few percent of metadata
+SWAPFILE SUPPORT
+~~~~~~~~~~~~~~~~
+
+The swapfile is supported since kernel 5.0. Use `swapon`(8) to activate the
+swapfile. There are some limitations of the implementation in btrfs and linux
+swap subystem:
++
+* filesystem - must be only single device
+* swapfile - the containing subvolume cannot be snapshotted
+* swapfile - must be preallocated
+* swapfile - must be nodatacow (ie. also nodatasum)
+* swapfile - must not be compressed
++
+The limitations come namely from the COW-based design and mapping layer of
+blocks that allows the advanced features like relocation and multi-device
+filesystems. However, the swap subsystem expects simpler mapping and no
+background changes of the file blocks once they've been attached to swap.
++
+With active swapfiles, the following whole-filesystem operations will skip
+swapfile extents or may fail:
+* balance - block groups with swapfile extents are skipped and reported, the rest will be processed normally
+* resize grow - unaffected
+* resize shrink - works as long as the extents are outside of the shrunk range
+* device add - a new device does not interfere with existing swapfile and this operation will work, though no new swapfile can be activated afterwards
+* device delete - if the device has been added as above, it can be also deleted
+* device replace - dtto
++
+When there are no active swapfiles and a whole-filesystem exclusive operation
+is running (ie. balance, device delete, shrink), the swapfiles cannot be
+temporarily activated. The operation must finish first.
++
+--------------------
+# truncate -s 0 swapfile
+# chattr +C swapfile
+# fallocate -l 2G swapfile
+# chmod 0600 swapfile
+# mkswap swapfile
+# swapon swapfile
+--------------------
+
+
FILESYSTEM LIMITS
-----------------
@@ -632,10 +682,11 @@ maximum file name length::
maximum symlink target length::
depends on the 'nodesize' value, for 4k it's 3949 bytes, for larger nodesize
-it's 4095
+it's 4095 due to the system limit PATH_MAX
+
-The symlink target may not be a valid path, ie the path name components
-can exceed the limits, there's no content validation at `symlink`(3) creation.
+The symlink target may not be a valid path, ie. the path name components
+can exceed the limits (NAME_MAX), there's no content validation at `symlink`(3)
+creation.
maximum number of inodes::
2^64^ but depends on the available metadata space as the inodes are created
@@ -648,15 +699,25 @@ maximum file length::
inherent limit of btrfs is 2^64^ (16 EiB) but the linux VFS limit is 2^63^ (8 EiB)
maximum number of subvolumes::
-2^64^ but depends on the available metadata space, the space consumed by all
-subvolume metadata includes bookkeeping of the shared extents can be large (MiB,
-GiB)
+the subvolume ids can go up to 2^64^ but the number of actual subvolumes
+depends on the available metadata space, the space consumed by all subvolume
+metadata includes bookkeeping of shared extents can be large (MiB, GiB)
maximum number of hardlinks of a file in a directory::
65536 when the `extref` feature is turned on during mkfs (default), roughly
100 otherwise
+BOOTLOADER SUPPORT
+------------------
+
+GRUB2 (https://www.gnu.org/software/grub) has the most advanced support of
+booting from BTRFS with respect to features.
+
+EXTLINUX (from the https://syslinux.org project) can boot but does not support
+all features. Please check the upstream documentation before you use it.
+
+
FILE ATTRIBUTES
---------------
The btrfs filesystem supports setting the following file attributes using the
@@ -708,6 +769,7 @@ When set on a directory, all newly created files will inherit this attribute.
No other attributes are supported. For the complete list please refer to the
`chattr`(1) manual page.
+
CONTROL DEVICE
--------------
@@ -739,6 +801,7 @@ The control device is not strictly required but the device scanning will not
work and a workaround would need to be used to mount a multi-device filesystem.
The mount option 'device' can trigger the device scanning during mount.
+
SEE ALSO
--------
`acl`(5),
@@ -747,4 +810,5 @@ SEE ALSO
`fstrim`(8),
`ioctl`(2),
`mkfs.btrfs`(8),
-`mount`(8)
+`mount`(8),
+`swapon`(8)
diff --git a/Documentation/btrfs-map-logical.8 b/Documentation/btrfs-map-logical.8
index 75f7fd3..8788ca4 100644
--- a/Documentation/btrfs-map-logical.8
+++ b/Documentation/btrfs-map-logical.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-map-logical
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-MAP\-LOGICAL" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-MAP\-LOGICAL" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/btrfs-property.8 b/Documentation/btrfs-property.8
index b8df629..d43355e 100644
--- a/Documentation/btrfs-property.8
+++ b/Documentation/btrfs-property.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-property
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-PROPERTY" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-PROPERTY" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/btrfs-qgroup.8 b/Documentation/btrfs-qgroup.8
index ed01649..fff31c8 100644
--- a/Documentation/btrfs-qgroup.8
+++ b/Documentation/btrfs-qgroup.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-qgroup
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-QGROUP" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-QGROUP" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/btrfs-quota.8 b/Documentation/btrfs-quota.8
index bc2dc23..5854f03 100644
--- a/Documentation/btrfs-quota.8
+++ b/Documentation/btrfs-quota.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-quota
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-QUOTA" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-QUOTA" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/btrfs-receive.8 b/Documentation/btrfs-receive.8
index acc0dd5..13771d3 100644
--- a/Documentation/btrfs-receive.8
+++ b/Documentation/btrfs-receive.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-receive
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-RECEIVE" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-RECEIVE" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/btrfs-replace.8 b/Documentation/btrfs-replace.8
index 95baf9c..a9f639b 100644
--- a/Documentation/btrfs-replace.8
+++ b/Documentation/btrfs-replace.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-replace
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-REPLACE" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-REPLACE" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/btrfs-rescue.8 b/Documentation/btrfs-rescue.8
index ccf542a..8712555 100644
--- a/Documentation/btrfs-rescue.8
+++ b/Documentation/btrfs-rescue.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-rescue
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-RESCUE" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-RESCUE" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/btrfs-restore.8 b/Documentation/btrfs-restore.8
index db63569..d3bb754 100644
--- a/Documentation/btrfs-restore.8
+++ b/Documentation/btrfs-restore.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-restore
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-RESTORE" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-RESTORE" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/btrfs-scrub.8 b/Documentation/btrfs-scrub.8
index a393a55..ce49476 100644
--- a/Documentation/btrfs-scrub.8
+++ b/Documentation/btrfs-scrub.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-scrub
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-SCRUB" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-SCRUB" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -48,7 +48,7 @@ btrfs-scrub \- scrub btrfs filesystem, verify block checksums
.ps -1
.br
.sp
-Scrub is not a filesystem checker (fsck) and does not verify nor repair structural damage in the filesystem\&.
+Scrub is not a filesystem checker (fsck) and does not verify nor repair structural damage in the filesystem\&. It really only checks checksums of of data and tree blocks, it doesn\(cqt ensure the content of tree blocks is valid and consistent\&. There\(cqs some validation performed when metadata blocks are read from disk but it\(cqs not extensive and cannot substitute full \fIbtrfs check\fR run\&.
.sp .5v
.RE
.sp
diff --git a/Documentation/btrfs-scrub.asciidoc b/Documentation/btrfs-scrub.asciidoc
index 4c49269..4402265 100644
--- a/Documentation/btrfs-scrub.asciidoc
+++ b/Documentation/btrfs-scrub.asciidoc
@@ -16,7 +16,10 @@ and metadata blocks from all devices and verify checksums. Automatically repair
corrupted blocks if there's a correct copy available.
NOTE: Scrub is not a filesystem checker (fsck) and does not verify nor repair
-structural damage in the filesystem.
+structural damage in the filesystem. It really only checks checksums of of data
+and tree blocks, it doesn't ensure the content of tree blocks is valid and
+consistent. There's some validation performed when metadata blocks are read
+from disk but it's not extensive and cannot substitute full 'btrfs check' run.
The user is supposed to run it manually or via a periodic system service. The
recommended period is a month but could be less. The estimated device bandwidth
diff --git a/Documentation/btrfs-select-super.8 b/Documentation/btrfs-select-super.8
index e56b290..7c9a928 100644
--- a/Documentation/btrfs-select-super.8
+++ b/Documentation/btrfs-select-super.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-select-super
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-SELECT\-SUPER" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-SELECT\-SUPER" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/btrfs-send.8 b/Documentation/btrfs-send.8
index 1a29bfa..a720409 100644
--- a/Documentation/btrfs-send.8
+++ b/Documentation/btrfs-send.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-send
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-SEND" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-SEND" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/btrfs-subvolume.8 b/Documentation/btrfs-subvolume.8
index 76688bd..0b0012d 100644
--- a/Documentation/btrfs-subvolume.8
+++ b/Documentation/btrfs-subvolume.8
@@ -2,12 +2,12 @@
.\" Title: btrfs-subvolume
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-SUBVOLUME" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-SUBVOLUME" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -308,26 +308,45 @@ or
\fBbtrfs inspect\-internal rootid\fR\&.
.RE
.PP
-\fBshow\fR [options] \fI<path>\fR|\fI<mnt>\fR
+\fBshow\fR [options] \fI<path>\fR
.RS 4
-Show information of a given subvolume in the
-\fI<path>\fR\&.
+Show more information about subvolume
+\fI<path>\fR
+regarding UUIDs, times, generations, flags and related snapshots\&.
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+/mnt/btrfs/subvolume
+ Name: subvolume
+ UUID: 5e076a14\-4e42\-254d\-ac8e\-55bebea982d1
+ Parent UUID: \-
+ Received UUID: \-
+ Creation time: 2018\-01\-01 12:34:56 +0000
+ Subvolume ID: 79
+ Generation: 2844
+ Gen at creation: 2844
+ Parent ID: 5
+ Top level ID: 5
+ Flags: \-
+ Snapshot(s):
+.fi
+.if n \{\
+.RE
+.\}
.sp
\fBOptions\fR
.PP
\-r|\-\-rootid
.RS 4
rootid of the subvolume\&.
+.RE
.PP
\-u|\-\-uuid
.RS 4
UUID of the subvolume\&.
.RE
-.sp
-If no option is specified, subvolume information of
-\fI<path>\fR
-is shown, otherwise the subvolume information of rootid or UUID in the filesystem is shown\&.
-.RE
.RE
.PP
\fBsnapshot\fR [\-r|\-i \fI<qgroupid>\fR] \fI<source>\fR \fI<dest>\fR|[<dest>/]\fI<name>\fR
diff --git a/Documentation/btrfs-subvolume.asciidoc b/Documentation/btrfs-subvolume.asciidoc
index f3eb4e2..49c72e8 100644
--- a/Documentation/btrfs-subvolume.asciidoc
+++ b/Documentation/btrfs-subvolume.asciidoc
@@ -171,21 +171,33 @@ path.
The id can be obtained from *btrfs subvolume list*, *btrfs subvolume show* or
*btrfs inspect-internal rootid*.
-*show* [options] <path>|<mnt>::
-Show information of a given subvolume in the <path>.
+*show* [options] <path>::
+Show more information about subvolume <path> regarding UUIDs, times,
+generations, flags and related snapshots.
++
+----------
+/mnt/btrfs/subvolume
+ Name: subvolume
+ UUID: 5e076a14-4e42-254d-ac8e-55bebea982d1
+ Parent UUID: -
+ Received UUID: -
+ Creation time: 2018-01-01 12:34:56 +0000
+ Subvolume ID: 79
+ Generation: 2844
+ Gen at creation: 2844
+ Parent ID: 5
+ Top level ID: 5
+ Flags: -
+ Snapshot(s):
+----------
+
`Options`
+
-r|--rootid::::
rootid of the subvolume.
--u|--uuid:::
+-u|--uuid::::
UUID of the subvolume.
-+
-If no option is specified, subvolume information of <path> is shown,
-otherwise the subvolume information of rootid or UUID in the filesystem
-is shown.
-
*snapshot* [-r|-i <qgroupid>] <source> <dest>|[<dest>/]<name>::
Create a snapshot of the subvolume <source> with the
name <name> in the <dest> directory.
diff --git a/Documentation/btrfs.5 b/Documentation/btrfs.5
index 433e6dd..ea2b18c 100644
--- a/Documentation/btrfs.5
+++ b/Documentation/btrfs.5
@@ -2,12 +2,12 @@
.\" Title: btrfs-man5
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS\-MAN5" "5" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS\-MAN5" "5" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -74,7 +74,7 @@ filesystem limits
.sp -1
.IP " 4." 4.2
.\}
-file attributes
+bootloader support
.RE
.sp
.RS 4
@@ -85,6 +85,17 @@ file attributes
.sp -1
.IP " 5." 4.2
.\}
+file attributes
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 6.\h'+01'\c
+.\}
+.el \{\
+.sp -1
+.IP " 6." 4.2
+.\}
control device
.RE
.SH "MOUNT OPTIONS"
@@ -895,6 +906,14 @@ the default subvolume has been set on the filesystem
increased hardlink limit per file in a directory to 65536, older kernels supported a varying number of hardlinks depending on the sum of all file name sizes that can be stored into one metadata block
.RE
.PP
+\fBmetadata_uuid\fR
+.RS 4
+(since: 5\&.0)
+.sp
+the main filesystem UUID is the metadata_uuid, which stores the new UUID only in the superblock while all metadata blocks still have the UUID set at mkfs time, see
+\fBbtrfstune\fR(8) for more
+.RE
+.PP
\fBmixed_backref\fR
.RS 4
(since: 2\&.6\&.31)
@@ -939,6 +958,34 @@ indicate that
.sp
reduced\-size metadata for extent references, saves a few percent of metadata
.RE
+.SS "SWAPFILE SUPPORT"
+.sp
+The swapfile is supported since kernel 5\&.0\&. Use \fBswapon\fR(8) to activate the swapfile\&. There are some limitations of the implementation in btrfs and linux swap subystem:
+.sp
++ * filesystem \- must be only single device * swapfile \- the containing subvolume cannot be snapshotted * swapfile \- must be preallocated * swapfile \- must be nodatacow (ie\&. also nodatasum) * swapfile \- must not be compressed
+.sp
++ The limitations come namely from the COW\-based design and mapping layer of blocks that allows the advanced features like relocation and multi\-device filesystems\&. However, the swap subsystem expects simpler mapping and no background changes of the file blocks once they\(cqve been attached to swap\&.
+.sp
++ With active swapfiles, the following whole\-filesystem operations will skip swapfile extents or may fail: * balance \- block groups with swapfile extents are skipped and reported, the rest will be processed normally * resize grow \- unaffected * resize shrink \- works as long as the extents are outside of the shrunk range * device add \- a new device does not interfere with existing swapfile and this operation will work, though no new swapfile can be activated afterwards * device delete \- if the device has been added as above, it can be also deleted * device replace \- dtto
+.sp
++ When there are no active swapfiles and a whole\-filesystem exclusive operation is running (ie\&. balance, device delete, shrink), the swapfiles cannot be temporarily activated\&. The operation must finish first\&.
+.sp
++
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+# truncate \-s 0 swapfile
+# chattr +C swapfile
+# fallocate \-l 2G swapfile
+# chmod 0600 swapfile
+# mkswap swapfile
+# swapon swapfile
+.fi
+.if n \{\
+.RE
+.\}
.SH "FILESYSTEM LIMITS"
.PP
maximum file name length
@@ -950,9 +997,9 @@ maximum symlink target length
.RS 4
depends on the
\fInodesize\fR
-value, for 4k it\(cqs 3949 bytes, for larger nodesize it\(cqs 4095
+value, for 4k it\(cqs 3949 bytes, for larger nodesize it\(cqs 4095 due to the system limit PATH_MAX
.sp
-The symlink target may not be a valid path, ie the path name components can exceed the limits, there\(cqs no content validation at
+The symlink target may not be a valid path, ie\&. the path name components can exceed the limits (NAME_MAX), there\(cqs no content validation at
\fBsymlink\fR(3) creation\&.
.RE
.PP
@@ -973,7 +1020,7 @@ inherent limit of btrfs is 2^64 (16 EiB) but the linux VFS limit is 2^63 (8 EiB)
.PP
maximum number of subvolumes
.RS 4
-2^64 but depends on the available metadata space, the space consumed by all subvolume metadata includes bookkeeping of the shared extents can be large (MiB, GiB)
+the subvolume ids can go up to 2^64 but the number of actual subvolumes depends on the available metadata space, the space consumed by all subvolume metadata includes bookkeeping of shared extents can be large (MiB, GiB)
.RE
.PP
maximum number of hardlinks of a file in a directory
@@ -982,6 +1029,11 @@ maximum number of hardlinks of a file in a directory
\fBextref\fR
feature is turned on during mkfs (default), roughly 100 otherwise
.RE
+.SH "BOOTLOADER SUPPORT"
+.sp
+GRUB2 (\m[blue]\fBhttps://www\&.gnu\&.org/software/grub\fR\m[]) has the most advanced support of booting from BTRFS with respect to features\&.
+.sp
+EXTLINUX (from the \m[blue]\fBhttps://syslinux\&.org\fR\m[] project) can boot but does not support all features\&. Please check the upstream documentation before you use it\&.
.SH "FILE ATTRIBUTES"
.sp
The btrfs filesystem supports setting the following file attributes using the \fBchattr\fR(1) utility:
@@ -1128,4 +1180,4 @@ The device is usually created by a system device node manager (eg\&. udev), but
The control device is not strictly required but the device scanning will not work and a workaround would need to be used to mount a multi\-device filesystem\&. The mount option \fIdevice\fR can trigger the device scanning during mount\&.
.SH "SEE ALSO"
.sp
-\fBacl\fR(5), \fBbtrfs\fR(8), \fBchattr\fR(1), \fBfstrim\fR(8), \fBioctl\fR(2), \fBmkfs\&.btrfs\fR(8), \fBmount\fR(8)
+\fBacl\fR(5), \fBbtrfs\fR(8), \fBchattr\fR(1), \fBfstrim\fR(8), \fBioctl\fR(2), \fBmkfs\&.btrfs\fR(8), \fBmount\fR(8), \fBswapon\fR(8)
diff --git a/Documentation/btrfs.8 b/Documentation/btrfs.8
index 3fc6b0e..21e7858 100644
--- a/Documentation/btrfs.8
+++ b/Documentation/btrfs.8
@@ -2,12 +2,12 @@
.\" Title: btrfs
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFS" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFS" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/btrfstune.8 b/Documentation/btrfstune.8
index b83d9e9..77351c0 100644
--- a/Documentation/btrfstune.8
+++ b/Documentation/btrfstune.8
@@ -2,12 +2,12 @@
.\" Title: btrfstune
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "BTRFSTUNE" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "BTRFSTUNE" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -41,30 +41,34 @@ The common usecase is to enable features that were not enabled at mkfs time\&. P
Some of the features could be also enabled on a mounted filesystem by other means\&. Please refer to the \fIFILESYSTEM FEATURES\fR in \fBbtrfs\fR(5)\&.
.SH "OPTIONS"
.PP
-\-S \fI<0|1>\fR
+\-f
.RS 4
-Enable seeding on a given device\&. Value 1 will enable seeding, 0 will disable it\&.
-
-A seeding filesystem is forced to be mounted read\-only\&. A new device can be added to the filesystem and will capture all writes keeping the seeding device intact\&.
+Allow dangerous changes, e\&.g\&. clear the seeding flag or change fsid\&. Make sure that you are aware of the dangers\&.
.RE
.PP
-\-r
+\-m
.RS 4
-(since kernel: 3\&.7)
+(since kernel: 5\&.0)
.sp
-Enable extended inode refs (hardlink limit per file in a directory is 65536), enabled by mkfs feature
-\fIextref\fR\&.
+change fsid stored as
+\fImetadata_uuid\fR
+to a randomly generated UUID, see also
+\fI\-U\fR
.RE
.PP
-\-x
+\-M \fI<UUID>\fR
.RS 4
-(since kernel: 3\&.10)
+(since kernel: 5\&.0)
.sp
-Enable skinny metadata extent refs (more efficient representation of extents), enabled by mkfs feature
-\fIskinny\-metadata\fR\&.
+change fsid stored as
+\fImetadata_uuid\fR
+to a given UUID, see also
+\fI\-U\fR
.sp
-All newly created extents will use the new representation\&. To completely switch the entire filesystem, run a full balance of the metadata\&. Please refer to
-\fBbtrfs\-balance\fR(8)\&.
+The metadata_uuid is stored only in the superblock and is a backward incompatible change\&. The fsid in metadata blocks remains unchanged and is not overwritten, thus the whole operation is significantly faster than
+\fI\-U\fR\&.
+.sp
+The new metadata_uuid can be used for mount by UUID and is also used to identify devices of a multi\-device filesystem\&.
.RE
.PP
\-n
@@ -75,9 +79,37 @@ Enable no\-holes feature (more efficient representation of file holes), enabled
\fIno\-holes\fR\&.
.RE
.PP
-\-f
+\-r
.RS 4
-Allow dangerous changes, e\&.g\&. clear the seeding flag or change fsid\&. Make sure that you are aware of the dangers\&.
+(since kernel: 3\&.7)
+.sp
+Enable extended inode refs (hardlink limit per file in a directory is 65536), enabled by mkfs feature
+\fIextref\fR\&.
+.RE
+.PP
+\-S \fI<0|1>\fR
+.RS 4
+Enable seeding on a given device\&. Value 1 will enable seeding, 0 will disable it\&.
+
+A seeding filesystem is forced to be mounted read\-only\&. A new device can be added to the filesystem and will capture all writes keeping the seeding device intact\&.
+.if n \{\
+.sp
+.\}
+.RS 4
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBWarning\fR
+.ps -1
+.br
+Clearing the seeding flag on a device may be dangerous\&. If a previously\-seeding device is changed, all filesystems that used that device will become unmountable\&. Setting the seeding flag back will not fix that\&.
+
+A valid usecase is
+\fIseeding device as a base image\fR\&. Clear the seeding flag, update the filesystem and make it seeding again, provided that it\(cqs OK to throw away all filesystems built on top of the previous base\&.
+.sp .5v
+.RE
.RE
.PP
\-u
@@ -88,7 +120,8 @@ Change fsid to a randomly generated UUID or continue previous fsid change operat
\-U \fI<UUID>\fR
.RS 4
Change fsid to
-\fIUUID\fR\&.
+\fIUUID\fR
+in all metadata blocks\&.
.sp
The
\fIUUID\fR
@@ -98,7 +131,9 @@ should be a 36 bytes string in
\fIUUID\fR
matches the unfinished one or if you use the option
\fI\-u\fR\&.
-.RE
+.sp
+All metadata blocks are rewritten, this may take some time, but the final filesystem compatibility is unaffected, unlike
+\fI\-M\fR\&.
.if n \{\
.sp
.\}
@@ -111,25 +146,22 @@ matches the unfinished one or if you use the option
\fBWarning\fR
.ps -1
.br
-.sp
-Cancelling or interrupting a UUID change operation will make the filesystem temporarily unmountable\&. To fix it, rerun \fIbtrfstune \-u\fR to restore the UUID and let it complete\&.
+Cancelling or interrupting a UUID change operation will make the filesystem temporarily unmountable\&. To fix it, rerun
+\fIbtrfstune \-u\fR
+and let it complete\&.
.sp .5v
.RE
-.if n \{\
-.sp
-.\}
+.RE
+.PP
+\-x
.RS 4
-.it 1 an-trap
-.nr an-no-space-flag 1
-.nr an-break-flag 1
-.br
-.ps +1
-\fBWarning\fR
-.ps -1
-.br
+(since kernel: 3\&.10)
.sp
-Clearing the seeding flag on a device may be dangerous\&. If a previously\-seeding device is changed, all filesystems that used that device will become unmountable\&. Setting the seeding flag back will not fix that\&. A valid usecase is \fIseeding device as a base image\fR\&. Clear the seeding flag, update the filesystem and make it seeding again, provided that it\(cqs OK to throw away all filesystems built on top of the previous base\&.
-.sp .5v
+Enable skinny metadata extent refs (more efficient representation of extents), enabled by mkfs feature
+\fIskinny\-metadata\fR\&.
+.sp
+All newly created extents will use the new representation\&. To completely switch the entire filesystem, run a full balance of the metadata\&. Please refer to
+\fBbtrfs\-balance\fR(8)\&.
.RE
.SH "EXIT STATUS"
.sp
diff --git a/Documentation/btrfstune.asciidoc b/Documentation/btrfstune.asciidoc
index 2710096..1d6bc98 100644
--- a/Documentation/btrfstune.asciidoc
+++ b/Documentation/btrfstune.asciidoc
@@ -25,26 +25,29 @@ means. Please refer to the 'FILESYSTEM FEATURES' in `btrfs`(5).
OPTIONS
-------
--S <0|1>::
-Enable seeding on a given device. Value 1 will enable seeding, 0 will disable it. +
-A seeding filesystem is forced to be mounted read-only. A new device can be added
-to the filesystem and will capture all writes keeping the seeding device intact.
--r::
-(since kernel: 3.7)
+-f::
+Allow dangerous changes, e.g. clear the seeding flag or change fsid. Make sure
+that you are aware of the dangers.
+
+-m::
+(since kernel: 5.0)
+
-Enable extended inode refs (hardlink limit per file in a directory is 65536),
-enabled by mkfs feature 'extref'.
+change fsid stored as 'metadata_uuid' to a randomly generated UUID,
+see also '-U'
--x::
-(since kernel: 3.10)
+-M <UUID>::
+(since kernel: 5.0)
+
-Enable skinny metadata extent refs (more efficient representation of extents),
-enabled by mkfs feature 'skinny-metadata'.
+change fsid stored as 'metadata_uuid' to a given UUID, see also '-U'
+
-All newly created extents will use the new representation. To completely switch
-the entire filesystem, run a full balance of the metadata. Please refer to
-`btrfs-balance`(8).
+The metadata_uuid is stored only in the superblock and is a backward
+incompatible change. The fsid in metadata blocks remains unchanged and
+is not overwritten, thus the whole operation is significantly faster than
+'-U'.
++
+The new metadata_uuid can be used for mount by UUID and is also used to
+identify devices of a multi-device filesystem.
-n::
(since kernel: 3.14)
@@ -52,33 +55,53 @@ the entire filesystem, run a full balance of the metadata. Please refer to
Enable no-holes feature (more efficient representation of file holes), enabled
by mkfs feature 'no-holes'.
--f::
-Allow dangerous changes, e.g. clear the seeding flag or change fsid. Make sure
-that you are aware of the dangers.
+-r::
+(since kernel: 3.7)
++
+Enable extended inode refs (hardlink limit per file in a directory is 65536),
+enabled by mkfs feature 'extref'.
+
+-S <0|1>::
+Enable seeding on a given device. Value 1 will enable seeding, 0 will disable it. +
+A seeding filesystem is forced to be mounted read-only. A new device can be added
+to the filesystem and will capture all writes keeping the seeding device intact.
++
+WARNING: Clearing the seeding flag on a device may be dangerous.
+If a previously-seeding device is changed, all filesystems that used that
+device will become unmountable. Setting the seeding flag back will not fix
+that. +
+A valid usecase is 'seeding device as a base image'. Clear the seeding
+flag, update the filesystem and make it seeding again, provided that it's OK
+to throw away all filesystems built on top of the previous base.
-u::
Change fsid to a randomly generated UUID or continue previous fsid change
operation in case it was interrupted.
-U <UUID>::
-Change fsid to 'UUID'.
+Change fsid to 'UUID' in all metadata blocks.
+
The 'UUID' should be a 36 bytes string in `printf`(3) format
'"%08x-%04x-%04x-%04x-%012x"'.
If there is a previous unfinished fsid change, it will continue only if the
'UUID' matches the unfinished one or if you use the option '-u'.
-
++
+All metadata blocks are rewritten, this may take some time, but the final
+filesystem compatibility is unaffected, unlike '-M'.
++
WARNING: Cancelling or interrupting a UUID change operation will make the
-filesystem temporarily unmountable. To fix it, rerun 'btrfstune -u' to restore
-the UUID and let it complete.
+filesystem temporarily unmountable. To fix it, rerun 'btrfstune -u' and let
+it complete.
-WARNING: Clearing the seeding flag on a device may be dangerous.
-If a previously-seeding device is changed, all filesystems that used that
-device will become unmountable. Setting the seeding flag back will not fix
-that. +
-A valid usecase is 'seeding device as a base image'. Clear the seeding
-flag, update the filesystem and make it seeding again, provided that it's OK
-to throw away all filesystems built on top of the previous base.
+-x::
+(since kernel: 3.10)
++
+Enable skinny metadata extent refs (more efficient representation of extents),
+enabled by mkfs feature 'skinny-metadata'.
++
+All newly created extents will use the new representation. To completely switch
+the entire filesystem, run a full balance of the metadata. Please refer to
+`btrfs-balance`(8).
EXIT STATUS
-----------
diff --git a/Documentation/fsck.btrfs.8 b/Documentation/fsck.btrfs.8
index c5bbcc2..32e5a45 100644
--- a/Documentation/fsck.btrfs.8
+++ b/Documentation/fsck.btrfs.8
@@ -2,12 +2,12 @@
.\" Title: fsck.btrfs
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "FSCK\&.BTRFS" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "FSCK\&.BTRFS" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/mkfs.btrfs.8 b/Documentation/mkfs.btrfs.8
index fbcd120..7bc55d1 100644
--- a/Documentation/mkfs.btrfs.8
+++ b/Documentation/mkfs.btrfs.8
@@ -2,12 +2,12 @@
.\" Title: mkfs.btrfs
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\" Date: 12/05/2018
+.\" Date: 01/23/2019
.\" Manual: Btrfs Manual
-.\" Source: Btrfs v4.19.1
+.\" Source: Btrfs v4.20.1
.\" Language: English
.\"
-.TH "MKFS\&.BTRFS" "8" "12/05/2018" "Btrfs v4\&.19\&.1" "Btrfs Manual"
+.TH "MKFS\&.BTRFS" "8" "01/23/2019" "Btrfs v4\&.20\&.1" "Btrfs Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------