btrfs-progs: docs: reformat btrfs-property manual page

Add sections for the types and properties, add examples.

Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
David Sterba 2022-05-30 21:46:42 +02:00
parent 63e0f3b39c
commit 497fae26c6
1 changed files with 78 additions and 39 deletions

View File

@ -11,57 +11,71 @@ DESCRIPTION
**btrfs property** is used to get/set/list property for given filesystem object.
The object can be an inode (file or directory), subvolume or the whole
filesystem. See the description of **get** subcommand for more information about
both btrfs object and property.
filesystem.
***btrfs property** provides an unified and user-friendly method to tune different
**btrfs property** provides an unified and user-friendly method to tune different
btrfs properties instead of using the traditional method like ``chattr(1)`` or
``lsattr(1)``.
Object types
^^^^^^^^^^^^
A property might apply to several object types so in some cases it's necessary
to specify that explicity, however it's not needed in the most common case of
files and directories.
The subcommands take parameter *-t*, use first letter as a shortcut (*f/s/d/i*)
of the type:
- filesystem
- subvolume
- device
- inode (file or directory)
Inode properties
^^^^^^^^^^^^^^^^
compression
compression algorithm set for an inode (it's not possible to set the
compression level this way), possible values:
- *lzo*
- *zlib*
- *zstd*
- *no* or *none* - disable compresssion (equivalent to ``chattr +m``)
- *""* (empty string) - set the default value
.. note::
This has changed in version 5.18 of btrfs-progs and
requires kernel 5.14 or newer to work.
Subvolume properties
^^^^^^^^^^^^^^^^^^^^
ro
read-only flag of subvolume: true or false. Please also see section *SUBVOLUME FLAGS*
in ``btrfs-subvolume(8)`` for possible implications regarding incremental send.
Filesystem properties
^^^^^^^^^^^^^^^^^^^^^
label
label of the filesystem. For an unmounted filesystem, provide a path to a block
device as object. For a mounted filesystem, specify a mount point.
SUBCOMMAND
----------
get [-t <type>] <object> [<name>]
get property from a btrfs *object* of given *type*
A btrfs object, which is set by *object*, can be a btrfs filesystem
itself, a btrfs subvolume, an inode (file or directory) inside btrfs,
or a device on which a btrfs exists.
The option *-t* can be used to explicitly
specify what type of object you meant. This is only needed when a
property could be set for more then one object type.
Possible types are *s[ubvol]*, *f[ilesystem]*, *i[node]* and *d[evice]*, where
the first lettes is a shortcut.
Set the name of property by *name*. If no *name* is specified,
all properties for the given object are printed. *name* is one of
the following:
ro
read-only flag of subvolume: true or false. Please also see section *SUBVOLUME FLAGS*
in ``btrfs-subvolume(8)`` for possible implications regarding incremental send.
label
label of the filesystem. For an unmounted filesystem, provide a path to a block
device as object. For a mounted filesystem, specify a mount point.
compression
compression algorithm set for an inode, possible values: *lzo*, *zlib*, *zstd*.
To disable compression use *no* or *none*. Empty value resets the
property and sets a default value.
.. note::
This has changed in version 5.18 of btrfs-progs and
requires kernel 5.14 or newer to work.
Read value of a property *name* of btrfs *object* of given *type*,
empty *name* will read all of them
list [-t <type>] <object>
Lists available properties with their descriptions for the given object.
See the description of **get** subcommand for the meaning of each option.
List available properties with their descriptions for the given object.
set [-f] [-t <type>] <object> <name> <value>
Sets a property on a btrfs object.
See the description of **get** subcommand for the meaning of each option.
Set *value* of property *name* on a given btrfs object.
``Options``
@ -69,6 +83,31 @@ set [-f] [-t <type>] <object> <name> <value>
Force the change. Changing some properties may involve safety checks or
additional changes that depend on the properties semantics.
EXAMPLES
--------
Set compression on a file:
.. code-block:: bash
$ touch file1
$ btrfs prop get file1
[ empty output ]
$ btrfs prop set file1 compression zstd
$ btrfs prop get file1
compression=zstd
Make a writeable subvolume read-only:
.. code-block:: bash
$ btrfs subvol create subvol1
[ fill subvol1 with data ]
$ btrfs prop get subvol1
ro=false
$ btrfs prop set subvol1 ro true
ro=true
EXIT STATUS
-----------