summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorDimitri John Ledkov <xnox@ubuntu.com>2019-01-26 00:37:47 +0000
committerDimitri John Ledkov <xnox@ubuntu.com>2019-01-26 00:37:47 +0000
commit2fd02b1f5f50d499b8f19d0cc5e9bc9ed7e686cd (patch)
tree7557002a8de5892b17c04d1afcd8fdc99a0af4e7 /Documentation
parent03b9f8baf40383f4c2d709c656ca35bd75362dff (diff)
New upstream release
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 c686381c..0fe8a9e5 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 536243bc..bfb76742 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 da562a57..6cd6fb9a 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 7b5239ab..c035ac3d 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 082e66a5..c8369f3b 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 94e4647d..a305be11 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 bda5d689..6b805a40 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 b97b846f..1dc9439f 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 3cd467ac..156a96a9 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 c358cef1..916311db 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 75f7fd3a..8788ca4c 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 b8df629e..d43355e1 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 ed01649e..fff31c8d 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 bc2dc239..5854f038 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 acc0dd52..13771d33 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 95baf9c6..a9f639b5 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 ccf542a7..87125552 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 db635693..d3bb754b 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 a393a553..ce49476b 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 4c49269e..44022657 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 e56b290a..7c9a9282 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 1a29bfa0..a720409a 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 76688bd2..0b0012dd 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 f3eb4e26..49c72e89 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 433e6dd6..ea2b18ce 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 3fc6b0e2..21e7858d 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 b83d9e9d..77351c0a 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 27100964..1d6bc98d 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 c5bbcc23..32e5a451 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 fbcd1203..7bc55d11 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
.\" -----------------------------------------------------------------