Commit Graph

589 Commits

Author SHA1 Message Date
pinysuse
7f10503bcd btrfs-progs: docs: add heading to ch-mount-options.rst
The header of the main section seems to be missing --> added.

Pull-request: #565
Author: pinysuse
Signed-off-by: David Sterba <dsterba@suse.com>
2023-01-25 16:20:33 +01:00
Christopher Head
cf7b55a980 btrfs-progs: docs: document some subvolume related ioctls
Author: Christopher Head <chead@chead.ca>
Signed-off-by: David Sterba <dsterba@suse.com>
2023-01-25 16:20:31 +01:00
Christopher Head
c5e3671121 btrfs-progs: docs: add missing ioctl names to the list
Author: Christopher Head <chead@chead.ca>
Signed-off-by: David Sterba <dsterba@suse.com>
2023-01-25 16:20:28 +01:00
Christopher Head
23b2f8a1e7 btrfs-progs: docs: add struct btrfs_ioctl_get_subvol_info_args
Author: Christopher Head <chead@chead.ca>
Signed-off-by: David Sterba <dsterba@suse.com>
2023-01-25 16:20:27 +01:00
Christopher Head
3387667966 btrfs-progs: docs: add up-to-date definition of btrfs_ioctl_vol_args_v2
Author: Christopher Head <chead@chead.ca>
Signed-off-by: David Sterba <dsterba@suse.com>
2023-01-25 16:20:24 +01:00
Naohiro Aota
2b4bebeacc btrfs-progs: docs: add sysfs chunk_size description
Add description for /sys/fs/btrfs/<uuid>/allocation/<type>/chunk_size.

Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2023-01-25 16:20:18 +01:00
Naohiro Aota
2a20dc237c btrfs-progs: docs: fix sysfs nodesize typo
Fix the typo.

Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2023-01-25 16:20:16 +01:00
Naohiro Aota
cdcdcf17af btrfs-progs: docs: add sysfs per-space_info bg_reclaim_threshold entry
There are two "bg_reclaim_threshold" under the sysfs directory. One is at
/sys/fs/btrfs/<UUID>/ and sets the threshold to start the auto reclaim
thread. The other one is
at/sys/fs/btrfs/<UUID>/allocations/{data,metadata,system} and sets the
threshold to reclaim a block group.

These two options have the same name but they are calculated against
different metrics. The former is a percentage of allocated (for a device
extent) space on total device space, and the latter is a percentage of
reclaimable space on a block group's zone capacity.

Add description for per-space_info bg_reclaim_threshold to distinguish
these two same name configurations.

Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2023-01-25 16:20:14 +01:00
David Sterba
f5884fc8ca btrfs-progs: docs: drop copyright year from manual pages
The copyright config variable can be used for a real copyright but we
don't have that for the manual pages and it was a stub. The date of page
generation time is added to the page anyway.

Signed-off-by: David Sterba <dsterba@suse.com>
2023-01-25 16:19:51 +01:00
Qu Wenruo
0d901db20a btrfs-progs: docs: add sysfs doc
This patch will add a dedicated section for btrfs sysfs interfaces.

It will include:

- Directory layout explanation
  Including:
  * Description
  * Introduced in which kernel version

- Files explanation
  Including:
  * RW/RO type
  * Description
  * Introduced in which kernel version

Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2023-01-25 16:19:43 +01:00
David Sterba
54b90cb6e5 btrfs-progs: fi mkswapfile: fix page count in header
Per user report on https://old.reddit.com/r/btrfs/comments/107fnw1/btrfs_filesystem_mkswapfile_results_in_an/
the swapfile header does not contain the correct number of pages that
matches the file size and the activated swapfile is only 1GiB:

  # btrfs filesystem mkswapfile -s 10g swapfile
  # swapon swapfile
  # cat /proc/swaps
  Filename          Type    Size       Used    Priority
  /swap/swapfile    file    1048572    0       -2

A workaround is to run 'mkswap swapfile' before activation. Proper fix
is to calculate the number of (fixed size) 4K pages available for the
swap.

Issue: #568
Signed-off-by: David Sterba <dsterba@suse.com>
2023-01-25 16:19:36 +01:00
David Sterba
3a5adfb1a4 btrfs-progs: docs: add some kernel 6.1 release notes
Signed-off-by: David Sterba <dsterba@suse.com>
2022-12-22 19:01:45 +01:00
David Sterba
4f7bf100a9 btrfs-progs: docs: typo fixups and formatting updates
Signed-off-by: David Sterba <dsterba@suse.com>
2022-12-22 18:44:47 +01:00
David Sterba
8cec98cb75 btrfs-progs: docs: updates, clarifications
Update spelling, add notable kernel/version features or updates.

Signed-off-by: David Sterba <dsterba@suse.com>
2022-12-14 02:56:16 +01:00
David Sterba
719b5a592f btrfs-progs: docs: add 6.1 development statistics
Signed-off-by: David Sterba <dsterba@suse.com>
2022-12-13 16:15:07 +01:00
David Sterba
c0360b4735 btrfs-progs: docs: fix typos
Namely change eg. to e.g. and ie. to i.e.

Signed-off-by: David Sterba <dsterba@suse.com>
2022-12-07 21:00:25 +01:00
David Sterba
f652a5b754 btrfs-progs: docs: swapfile and hibernation
Document the new swapfile commands and how it could be used for hibernation.

Issue: #533
Issue: #544
Signed-off-by: David Sterba <dsterba@suse.com>
2022-12-06 23:19:12 +01:00
David Sterba
90548b8295 btrfs-progs: filesystem: new subcommand mkswapfile
Add a command to create a new swapfile. The same can be achieved by
seandalone tools but they're just wrappers around the syscalls. The swap
format is simple enough to be created directly without mkswap command so
the swapfile can be created in one go.

The file must not exist before, this is to avoid problems with file
attributes or any other effects of existing extents. This also means the
command can't be used on block devices.

Default size is 2G, minimum size is 40KiB.

Signed-off-by: David Sterba <dsterba@suse.com>
2022-11-08 11:30:21 +01:00
David Sterba
701ab151c2 btrfs-progs: qgroup: new command to delete stale qgroups
A stale qgroup is level 0 and without a corresponding subvolume. There's
no convenient command for removing them and kernel does not remove them
automatically. Add a command so users don't have to parse and script the
output and/or delete them manually.

Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-26 09:21:35 +02:00
Nikolaos Chatzikonstantinou
6f11a70215 btrfs-progs: docs: also mention no compression for swapfile
The fact that the +C attribute excludes compression is mentioned in
<https://btrfs.readthedocs.io/en/latest/ch-compression.html#compatibility>.

Also mention it at the swapfile for clarity.

Pull-request: #530
Author: Nikolaos Chatzikonstantinou <nchatz314@gmail.com>
Reviewed-by: David Sterba <dsterba@suse.com>
2022-10-25 21:50:31 +02:00
Jeff Mahoney
f80a6b40b9 btrfs-progs: quota: add -W option to rescan to wait without starting rescan
Adds a new options -W and --wait-norescan to wait for a rescan without
starting a new operation.  This is useful for things like fstests where
we want do to do a "btrfs quota enable" and not continue until the
subsequent rescan has finished.

In addition to documenting the new option in the man page, clean up the
rescan entry to document the -w option a bit better.

Pull-request: #139
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-25 21:12:24 +02:00
Tamara Schmitz
2577fc0751 btrfs-progs: docs: fix option name misspelling
Pull-request: #527
Author: Tamara Schmitz <tamara.schmitz@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-25 21:12:24 +02:00
David Sterba
eb439bb833 btrfs-progs: quota rescan: add long options for status and wait
Add more descriptive long options to 'btrfs quota rescan'.

Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-25 11:54:58 +02:00
David Sterba
447f976472 btrfs-progs: subvol delete: update EPERM error message
The message could be confusing in case there's no send in progress and
the real reason is lack of permissions when deleting a subvolume.
Mention the permissions as first reason. Also update documentation.

Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-24 15:14:47 +02:00
David Sterba
6d6695e2a3 btrfs-progs: btrfstune: move -b option to experimental build
The option is listed among normal options but getopt does not recognize
it outside of experimental build, so make it consistent. Also mention
the correct version and need of the special build in documentation.

Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-17 15:42:38 +02:00
David Sterba
d38e561588 btrfs-progs: docs: fix version when send v2 was introduced
As reported the documentation stated the send protocol v2 support was
supported since 5.18, but that's probably remnants of past revisions of
the patches introducing the support. Correct version is 6.0

Issue: #529
Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-14 12:48:47 +02:00
David Sterba
e15c9612a8 btrfs-progs: docs: add 6.0 development statistics
Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-11 11:08:20 +02:00
David Sterba
7322fc4de2 btrfs-progs: docs: update documentation site references in manual pages
Mention the read-the-docs page in manual pages and update INSTALL and
README.md with a reference.

Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-11 09:08:12 +02:00
David Sterba
86bfbc889e btrfs-progs: docs: add note about mounted filesystem for tree-stats
Clarify that tree-stats can print inaccurate results or warnings when
the filesystem is mounted. Inspired by
https://bugzilla.kernel.org/show_bug.cgi?id=97481 .

Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-11 09:08:10 +02:00
David Sterba
f7a768d624 btrfs-progs: mkfs: remove support for option --leafsize
The leafsize has never been different from nodesize and since 4.0 (2015)
it's been alias for nodesize. This should be enough time for everybody
to update so the support is removed.

Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-11 09:08:09 +02:00
David Sterba
48c5740e87 btrfs-progs: docs: clarify meaning of mkfs --byte-count
The meaning of the -b/--byte-count option is different than what the
help text says. Historically it was used to set the filesystem size but
with multiple devices it sets the size on each device:

  $ mkfs.btrfs /dev/sdx[1234]
  ...
  Number of devices:  4
  Devices:
     ID        SIZE  PATH
      1     2.00GiB  /dev/sdx1
      2     2.00GiB  /dev/sdx2
      3     2.00GiB  /dev/sdx3
      4     2.00GiB  /dev/sdx4

And when set to 1G:

  $ mkfs.btrfs -b 1G /dev/sdx[1234]
  ...
  Number of devices:  4
  Devices:
     ID        SIZE  PATH
      1     1.00GiB  /dev/sdx1
      2     1.00GiB  /dev/sdx2
      3     1.00GiB  /dev/sdx3
      4     1.00GiB  /dev/sdx4

Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-11 09:08:09 +02:00
David Sterba
3d6dba10de btrfs-progs: docs: remove some asciidoc formatting artifacts
Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-11 09:08:08 +02:00
Sidong Yang
2d039cc815 btrfs-progs: docs: add cross reference for manualpages
RST format provides cross reference function that users can navigate
manual pages click. This patch is written by macro that replaces old
references to doc role in RST format.

Issue: #495
Signed-off-by: Sidong Yang <realwakka@gmail.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-11 09:08:08 +02:00
David Sterba
958e2fc442 btrfs-progs: docs: note about read-only mount for send
Clarify that read-only mount is not sufficient.

Issue: #493
Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-11 09:08:07 +02:00
Torstein Eide
3f8817de7f btrfs-progs: docs: add a section about troubleshooting swapfile
swapon fails with an unclear error message, add some hints were to look
for more information.

Author: Torstein Eide
Pull-request: #491
Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-11 09:08:07 +02:00
Solt Budavári
fe7aabafdf btrfs-progs: docs: fix typo in subvolume intro
Author: solt87
Pull-request: #513
Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-11 09:08:07 +02:00
AtticFinder65536
f70ca45961 btrfs-progs: docs: update reflink cross-mount constraint
Mention the version support for the cross-mount support, since 5.18.

Author: AtticFinder65536
Pull-request: #480
Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-11 09:08:07 +02:00
David Sterba
7ab0c46a81 btrfs-progs: fi usage: fix unallocated and print total and slack
The size reported as Unallocated in the table was different that the one
in the listing, calculated differently. The values should reflect the
unallocated area available for the filesystem - not necessarily the
total size of the device. If there's such slack space it's reported
separately.

The values in the table mean:

- Unallocated: block device size - slack - allocated
- Total:       block device size - slack
- Slack:       block device size - filesystem

The new columns make the table wider but the values are deemed to be
important by users and for filesystems with normal profiles it fits
under reasonable line width. During balance or with multiple profiles it
can get wider but this should not be a serious problem.

Example output:

Overall:
    Device size:                  13.00GiB
    Device allocated:            536.00MiB
    Device unallocated:           12.48GiB
    Device missing:                  0.00B
    Device slack:                  1.00GiB
    Used:                          2.31MiB
    Free (estimated):             12.48GiB      (min: 6.24GiB)
    Free (statfs, df):            12.48GiB
    Data ratio:                       1.00
    Metadata ratio:                   2.00
    Global reserve:                3.50MiB      (used: 0.00B)
    Multiple profiles:                  no

              Data    Metadata  System
Id Path       single  DUP       DUP      Unallocated Total    Slack
-- ---------- ------- --------- -------- ----------- -------- -------
 1 /dev/loop0 8.00MiB 512.00MiB 16.00MiB     2.48GiB  3.00GiB 1.00GiB
 2 /dev/loop1       -         -        -    10.00GiB 10.00GiB       -
-- ---------- ------- --------- -------- ----------- -------- -------
   Total      8.00MiB 256.00MiB  8.00MiB    12.48GiB 13.00GiB 1.00GiB
   Used       2.00MiB 144.00KiB 16.00KiB

Issue: #508
Pull-request: #509 (partial fix)
Signed-off-by: David Sterba <dsterba@suse.com>
2022-10-11 09:06:12 +02:00
Qu Wenruo
2f2f6bfe17 btrfs-progs: btrfstune: add the ability to convert to block group tree feature
The new '-b' option will be responsible for converting to block group
tree compat ro feature.

The workflow looks like this for new convert:

- Setting CHANGING_BG_TREE flag
  And initialize fs_info->last_converted_bg_bytenr value to (u64)-1.

  Any bg with bytenr >= last_converted_bg_bytenr will have its bg item
  update go to the new root (bg tree).

- Iterate each block group by their bytenr in descending order
  This involves:
  * Delete the old bg item from the old tree (extent tree)
  * Update last_converted_bg_bytenr to the bytenr of the bg
  * Add the new bg item into the new tree (bg tree)
  * If we have converted a bunch of bgs, commit current transaction

- Clear CHANGING_BG_TREE flag
  And set the new BLOCK_GROUP_TREE compat ro flag and commit.

And since we're doing the convert in multiple transactions, we also need
to resume from last interrupted convert.

In that case, we just grab the last unconverted bg, and start from it.

And to co-operate with the new kernel requirement for both no-holes and
free-space-tree features, the convert tool will check for
free-space-tree feature. If not enabled, will error out with an error
message to how to continue (by mounting with "-o space_cache=v2").

For missing no-holes feature, we just need to set the flag during
convert.

Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2022-09-12 18:25:32 +02:00
David Sterba
d2f543d92f btrfs-progs: docs: add stub page for kernel changes
Track kernel changes like on
https://btrfs.wiki.kernel.org/index.php/Changelog#By_version_.28linux_kernel.29

Signed-off-by: David Sterba <dsterba@suse.com>
2022-09-10 22:47:27 +02:00
David Sterba
b02afdc7f2 btrfs-progs: docs: add new 5.19 features
Signed-off-by: David Sterba <dsterba@suse.com>
2022-09-10 22:47:24 +02:00
David Sterba
44a11c7f3e btrfs-progs: docs: update kernel 5.19 contributor stats
Signed-off-by: David Sterba <dsterba@suse.com>
2022-08-16 15:18:12 +02:00
David Sterba
cef73a5e98 btrfs-progs: device: add replace subcommand as alias to 1st level command
The command group of 'replace' belongs to device and could be seen as
confusing. At minimum we can add an alias so now there's equivalent:

  # btrfs replace start
  # btrfs device replace start

Both commands will exist for backward compatibility, tough we might
revisit which one is the primary one.

Issue: #484
Signed-off-by: David Sterba <dsterba@suse.com>
2022-08-16 15:18:11 +02:00
Nikolay Borisov
99ce788a0d btrfs-progs: add support for tabular format for device stats
Add support for the -T switch to 'device stats" command such that
executing 'btrfs device stats -T' produces:

Id Path     Write errors Read errors Flush errors Corruption errors Generation errors
-- -------- ------------ ----------- ------------ ----------------- -----------------
 1 /dev/vdc            0           0            0                 0                 0
 2 /dev/vdd            0           0            0                 0                 0

Link: https://lore.kernel.org/linux-btrfs/d7bd334d-13ad-8c5c-2122-1afc722fcc9c@dirtcellar.net
Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2022-08-16 15:18:11 +02:00
David Sterba
6f4380a95e btrfs-progs: docs: add send stream format description
Signed-off-by: David Sterba <dsterba@suse.com>
2022-08-16 15:18:11 +02:00
David Sterba
0631817e6f btrfs-progs: docs: update troubleshooting
Copy contents from wiki page Problem_FAQ.

Signed-off-by: David Sterba <dsterba@suse.com>
2022-08-16 15:18:11 +02:00
David Sterba
271424fb80 btrfs-progs: docs: add feature by version table from wiki
Copy contents from https://btrfs.wiki.kernel.org/index.php/Changelog#By_feature

The formatting is done by a definition and list, instead of a table.
Unfortunatelly RST does not wrap long text in table cells so the width
exceeds visible area.

Signed-off-by: David Sterba <dsterba@suse.com>
2022-08-16 15:18:11 +02:00
David Sterba
da8e2d3486 btrfs-progs: docs: distinguish Changes title
Rename the section to contain btrfs-progs as there will be more
sections, eg. kernel or by feature.

Signed-off-by: David Sterba <dsterba@suse.com>
2022-08-16 15:18:10 +02:00
David Sterba
07d5dd158e btrfs-progs: docs: copy wiki page Contributors
Signed-off-by: David Sterba <dsterba@suse.com>
2022-08-16 15:18:10 +02:00
David Sterba
673c4ff111 btrfs-progs: docs: split project information to new section
Signed-off-by: David Sterba <dsterba@suse.com>
2022-08-16 15:18:10 +02:00