Commit Graph

7498 Commits

Author SHA1 Message Date
Daniel Vacek
0cfc20b374 btrfs-progs: defrag: allow passing compression levels
The zlib and zstd compression methods support using compression levels.
Enable defrag to pass them to kernel.

Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Daniel Vacek <neelx@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 23:16:24 +01:00
Wang Mingyu
6be1d80a64 btrfs-progs: mkfs: add break to case BTRFS_COMPRESS_NONE
When compression is null the code always goes through the LZO case,
or prints "lzo support not compiled in".

This bug was added by commit c6d24a363d ("btrfs-progs: mkfs: add lzo
to --compress option").

Pull-request: #967
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:10 +01:00
Junxuan
ee53b498d5 libbtrfsutil: update btrfs_util_create_snapshot doc
The alias should be for btrfs_util_subvolume_snapshot instead of
btrfs_util_snapshot_snapshot.

Pull-request: #969
Signed-off-by: Junxuan Liao <ljx@cs.wisc.edu>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:10 +01:00
Artur Klauser
7e3e89c0cf btrfs-progs: docs: fix typos in documentation
Pull-request: #968
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:10 +01:00
Noor Christensen
99e6004231 btrfs-progs: docs: expand abbreviations for clarity
Replace the use of IOW as abbreviation of "In other words" with the
original expanded meaning, as users who don't have English as their
first language may not know what it means.

Pull-request: #966
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:10 +01:00
Naohiro Aota
1e85aa96e1 btrfs-progs: zoned: fix alloc_offset calculation for partly conventional block groups
When one of two zones composing a DUP block group is a conventional zone, we
have the zone_info[i]->alloc_offset = WP_CONVENTIONAL. That will, of course,
not match the write pointer of the other zone, and fails that block group.

This commit solves that issue by properly recovering the emulated write pointer
from the last allocated extent. The offset for the SINGLE, DUP, and RAID1 are
straight-forward: it is same as the end of last allocated extent. The RAID0 and
RAID10 are a bit tricky that we need to do the math of striping.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:10 +01:00
Naohiro Aota
5042af1c4f btrfs-progs: zoned: implement RAID10 zone info loading
Just same as the kernel side.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:10 +01:00
Naohiro Aota
915e15da2e btrfs-progs: zoned: implement RAID0 zone info loading
Implement it just like the kernel side.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:10 +01:00
Naohiro Aota
03a70d0a9f btrfs-progs: zoned: implement RAID1 zone info loading
Implement it just like the kernel side.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:10 +01:00
Naohiro Aota
8a04df97cc btrfs-progs: zoned: implement DUP zone info loading
DUP support is added like the kernel side.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:09 +01:00
Naohiro Aota
32ad46863c btrfs-progs: zoned: factor out SINGLE zone info loading
Currently, the userland tool only considers the SINGLE profile, which make it
fail when a DUP block group is created over one conventional zone and one
sequential required zone.

Before adding the other profiles support, let's factor out per-profile code
(actually, SINGLE only) into functions just like as the kernel side.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:09 +01:00
Naohiro Aota
3a24570ebd btrfs-progs: zoned: factor out btrfs_load_zone_info()
Now that, we have zone capacity and (basic) zone activeness support. It's time
to factor out btrfs_load_zone_info() as same as the kernel side.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:09 +01:00
Naohiro Aota
6936ffa265 btrfs-progs: zoned: activate block group on loading
Introduce "zone_is_active" member to struct btrfs_block_group and activate it
on loading a block group.

Note that activeness check for the extent allocation is currently not
implemented. The activeness checking requires to activate a non-active block
group on the extent allocation, which also require finishing a zone in the case
of hitting the active zone limit. Since mkfs should not hit the limit,
implementing the zone finishing code would not be necessary at the moment.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:09 +01:00
Naohiro Aota
936c947728 btrfs-progs: zoned: load zone activeness
Properly load the zone activeness on the userland tool. Also, check if a device
has enough active zone limit to run btrfs.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:09 +01:00
Naohiro Aota
be43b47535 btrfs-progs: zoned: support zone capacity
The userland tools did not load and use the zone capacity. Support it properly.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:09 +01:00
Naohiro Aota
11fe76f4b7 btrfs-progs: zoned: introduce a zone_info struct in btrfs_load_block_group_zone_info
This is an userland side update to follow kernel-side commit 15c12fcc50a1
("btrfs: zoned: introduce a zone_info struct in
btrfs_load_block_group_zone_info"). This will make the code unification easier.

This commit introduces zone_info structure to hold per-zone information in
btrfs_load_block_group_zone_info.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:09 +01:00
Naohiro Aota
e9d0e003ab btrfs-progs: kerncompat: introduce min_not_zero()
Introduce min_not_zero() macro from the kernel.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:09 +01:00
David Sterba
ce509fb738 btrfs-progs: ci: enable experimental build on devel and pull workflows
Some tests in mkfs or misc require the experimental build. Enable it on
the development workflows. Build coverage with or without experimental
build is covered by the CI image build tests.

Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:09 +01:00
David Sterba
23e222bc81 btrfs-progs: check: use on-stack ulist for squota extent accounting
Commit 5bd97022f3 ("btrfs-progs: check: add support for squota")
does ulist node allocation but this leaks on any error before the final
accounting. As it's freed right after that we can use on-stack variable
for that.

This was reported by 067-btrfstune-simple-quota with enabled ASAN with
enabled experimental features.

Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:09 +01:00
David Sterba
b75949044b btrfs-progs: tests: add case for recursive subvolume deletion printing child subvolumes
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:09 +01:00
Sidong Yang
94fee22114 btrfs-progs: subvol delete: show nested subvolumes during recursive delete
When a subvolume is deleted with the recursive option, any nested
subvolumes also get removed without reporting it. Update the subvolume
delete command to print the list of nested subvolumes.

Issue: #923
Signed-off-by: Sidong Yang <realwakka@gmail.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:09 +01:00
Sebastian Pucilowski
fdb81b170b btrfs-progs: mkfs: fix typo in default-ro help text
Fix a option typo in the mkfs help (`mkfs.btrfs -h`) introduced in the
most recent public release: `defalut-ro` instead of `default-ro`.

Pull-request: #958
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:09 +01:00
Racz Zoltan
ed8b167de9 btrfs-progs: add duration format to fmt_print
Add "duration" format in seconds to fmt_print which will convert the
input to one of the following strings:

1. if number of seconds represents more than one day, the output will be
   for example: "1 days 01:30:00" (left the plural so parsing back the
   string is easier)
2. if less then a day: "23:30:10"

Author: Racz Zoltan <racz.zoli@gmail.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:09 +01:00
Qu Wenruo
0416dafaea btrfs-progs: docs: add an extra note to btrfs data checksum and directIO
In v6.14 kernel release, btrfs will force a direct IO to fall back to
a buffered one if the inode requires a data checksum.

This will cause a small performance drop, to solve the false data
checksum mismatch problem caused by direct IOs.

Although such a change is small to most end users, for those requiring
such a zero-copy direct IO this will be a behavior change, and this
requires a proper documentation update.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Qu Wenruo <wqu@suse.com>
2025-03-11 22:15:09 +01:00
David Sterba
46b3318556 libbtrfsutil: python: also add version.py to the packaged files
Commit 83bd999c3e ("libbtrfsutil: python: use version from primary
VERSION file") still does not fix all packaging problems. The release
build does not see the file.

Signed-off-by: David Sterba <dsterba@suse.com>
2025-03-11 22:15:09 +01:00
David Sterba
26e4d9174c
Btrfs progs v6.13
Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:18:32 +01:00
David Sterba
b1eef5de06 btrfs-progs: update CHANGES for 6.13
Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:16:14 +01:00
David Sterba
83bd999c3e libbtrfsutil: python: use version from primary VERSION file
The version file of the python subpackage had to have the version set
manually in setup.py due to the out-of-tree build where it was not
possible to access the file VERSION. Manual update was error prone.

Improve that by adding a separate file template that is finalized with
the version during the configure phase. Then it's inclded in setup.py as
it's in the same directory.

There are two exceptions when the file is not required to run setup.py:

- clean - allow running 'make clean' in partially configured directory
- (no arguments) - show the help and commands

In all other cases the file version.py must exist.

Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
David Sterba
6cf93a2504 btrfs-progs: ci: enable extended security CodeQL queries
Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
David Sterba
e6bc916069 btrfs-progs: ci: clean up CodeQL workflow
Remove boilerplate text, reduce commends and keep only the links for
future reference. Add branch 'master' for on-push event. Remove
scheduled scans, it's run frequently enough on 'devel' push.

Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
David Sterba
53c81565a7 btrfs-progs: mkfs: call deflateEnd() after zlib compression
ASAN reports memory leak when zlib is used. The missing part is
deflateEnd() that frees structures allocated at deflateInit(). Add it to
all exit paths.

Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
David Sterba
1af2543198 btrfs-progs: tests: add basic compression coverage
Create a source for --rootdir and then use it for mkfs with compression.
Try a few levels, nothing special.

Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
David Sterba
794af7bcd0 btrfs-progs: tests: use /bin/bash in the main scripts
Test scripts under tests/ should all use /bin/bash for consistency.

Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
David Sterba
2b551445ff libbtrfsutil: update internal header files (minor change)
Cumulative change sync with UAPI headers, rename and unify multiple
inclusion macro names.

Added defines:
- BTRFS_QGROUP_INHERIT_FLAGS_SUPP
- BTRFS_DEVICE_REMOVE_ARGS_MASK
- BTRFS_SUBVOL_CREATE_ARGS_MASK
- BTRFS_SUBVOL_DELETE_ARGS_MASK
- BTRFS_DEFRAG_RANGE_FLAGS_SUPP

Removed defines:
- BTRFS_BALANCE_CTL_RESUME

Added structures:
- struct btrfs_ioctl_encoded_io_args (and related defines)
- btrfs_ioctl_subvol_wait (and related defines)

Added ioctl definitions:
- BTRFS_IOC_ENCODED_READ
- BTRFS_IOC_ENCODED_WRITE
- BTRFS_IOC_SUBVOL_SYNC_WAIT

Changes to the private header sync key types and other defines.

Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
David Sterba
d5d0a712f0 btrfs-progs: sync uapi/btrfs_tree.h header from kernel
Update comments and b-tree key definitions.  A rename to struct
btrfs_raid_stride offset -> physical.

Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
David Sterba
86ca4b0442 btrfs-progs: sync uapi/btrfs.h header from kernel
Add/remove macro definitions, add SUBVOL_SYNC_WAIT structture and
defintions.

Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
David Sterba
2c6f08001c btrfs-progs: ci: add option to run only codespell workflow
For quick checks before a push of non-code changes we may want to do
only the spellchecking workflow. Any branch pushed matching the prefix
"codespell/" will be picked by this.

Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
David Sterba
02f60e9700 btrfs-progs: tests: update README
Minor fixes and updates that reflect current state.

[ci skip]

Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
David Sterba
86e119b3d7 btrfs-progs: tests: add prefix to test templates and update permissions
The templates need to be renamed, so make it more suggestive by
prepending the expected name of the script test.sh. Also fix the
permissions and make it 755 so it's not missed later as this would not
execute the script.

Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
David Sterba
ac3ecb11d6 btrfs-progs: tests: rename and update convert/027-large-symbol-link
Use 'symbolic' as the term.

Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
David Sterba
c1ddc01d86 btrfs-progs: tests: adjust number of misc/064-reverse-receive
There are two tests 064, and we're missing 061 so fill the gap.

Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
David Sterba
311f277ada btrfs-progs: tests: adjust number of misc/065-btrfstune-simple-quota
The 065 and 066 are taken.

Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
David Sterba
83626477e9 btrfs-progs: tests: adjust number of misc/065-image-filename
There already is misc/065-csum-conversion-inject .

Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
Qu Wenruo
681512b2f0 btrfs-progs: docs: add a warning when converting to a profile with lower redundancy
[BUG]
There is a bug report that when deleting a device using sysfs
/sys/block/<dev>/device/delete, the kernel module will still try to read
and write the device.

Normally it's fine as long as all chunks can tolerate that removed
device (e.g. all RAID1).

But the problem is when one is trying to lower the redundancy by
converting to another profile:

  # mkfs.btrfs -f -m raid1 -d raid1 /dev/sdd /dev/sde
  # mount /dev/sdd /mnt
  # echo 1 > /sys/block/sde/device/delete
  # btrfs balance start --force -mdup -dsingle /mnt

This will lead to the filesystem mounted RO, with the following error messages:

  sd 6:0:0:0: [sde] Synchronizing SCSI cache
  ata7.00: Entering standby power mode
  btrfs: attempt to access beyond end of device
  sde: rw=6145, sector=21696, nr_sectors = 32 limit=0
  btrfs: attempt to access beyond end of device
  sde: rw=6145, sector=21728, nr_sectors = 32 limit=0
  btrfs: attempt to access beyond end of device
  sde: rw=6145, sector=21760, nr_sectors = 32 limit=0
  BTRFS error (device sdd): bdev /dev/sde errs: wr 1, rd 0, flush 0, corrupt 0, gen 0
  BTRFS error (device sdd): bdev /dev/sde errs: wr 2, rd 0, flush 0, corrupt 0, gen 0
  BTRFS error (device sdd): bdev /dev/sde errs: wr 3, rd 0, flush 0, corrupt 0, gen 0
  BTRFS error (device sdd): bdev /dev/sde errs: wr 3, rd 0, flush 1, corrupt 0, gen 0
  btrfs: attempt to access beyond end of device
  sde: rw=145409, sector=128, nr_sectors = 8 limit=0
  BTRFS warning (device sdd): lost super block write due to IO error on /dev/sde (-5)
  BTRFS error (device sdd): bdev /dev/sde errs: wr 4, rd 0, flush 1, corrupt 0, gen 0
  btrfs: attempt to access beyond end of device
  sde: rw=14337, sector=131072, nr_sectors = 8 limit=0
  BTRFS warning (device sdd): lost super block write due to IO error on /dev/sde (-5)
  BTRFS error (device sdd): bdev /dev/sde errs: wr 5, rd 0, flush 1, corrupt 0, gen 0
  BTRFS error (device sdd): error writing primary super block to device 2
  BTRFS info (device sdd): balance: start -dconvert=single -mconvert=dup -sconvert=dup
  BTRFS info (device sdd): relocating block group 1372585984 flags data|raid1
  BTRFS error (device sdd): bdev /dev/sde errs: wr 5, rd 0, flush 2, corrupt 0, gen 0
  BTRFS warning (device sdd): chunk 2446327808 missing 1 devices, max tolerance is 0 for writable mount
  BTRFS: error (device sdd) in write_all_supers:4044: errno=-5 IO failure (errors while submitting device barriers.)
  BTRFS info (device sdd state E): forced readonly
  BTRFS warning (device sdd state E): Skipping commit of aborted transaction.
  BTRFS error (device sdd state EA): Transaction aborted (error -5)
  BTRFS: error (device sdd state EA) in cleanup_transaction:2017: errno=-5 IO failure
  BTRFS info (device sdd state EA): balance: ended with status: -5

[CAUSE]
Btrfs doesn't have any runtime device error handling, it fully rely on
the extra copy provided.

For the sysfs block device removal, normally there is a device shutdown
callback to the running fs, but unfortunately btrfs doesn't support this
callback yet.

Thus even with that device removed, btrfs will still access that
removed device (both read and write, even if they will fail).

Normally for a full RAID1 btrfs, it will still be fine reading/write the
fs as usual.  The proper action is to replace the
removed/missing/failing device with a newer one using `btrfs device
replace`.

But when doing the convert, btrfs will allocate new metadata chunks on
to the removed device (which will lose all writes).

And since the new metadata profile is DUP, which can not handle any
missing device of that metadata chunk, finally it triggers the final
protection at transaction commit time, and flips the filesystem to RO,
before causing any real data loss.

[DOC ENHANCEMENT]
Add a warning to the `convert` filter about the dangerous doing convert
to a lower redundancy profile when there is a known failing/removed
device.

And mention the proper way to handle such failing/missing device.

The root fix is to introduce a failing/removed device detection for
btrfs, but that will be a pretty big feature and will take quite some
time before landing it upstream.

Link: https://lore.kernel.org/linux-btrfs/2cb1d81e-12a8-4fb1-b3fc-e7e83d31e059@siddall.name/
Reported-by: Jeff Siddall <news@siddall.name>
Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
Qu Wenruo
1d694ffaba btrfs-progs: docs: add a note on qgroup limit with inconsitent flag
Just like all qgroup functions, if a qgroup is marked inconsistent, limit
will not work as expected.  In fact with recent kernels, limit and
qgroup number updating will be fully skipped if qgroup is already
inconsistent.

Add one extra note on `btrfs qgroup limit` subcommand for it.

Link: https://bugzilla.suse.com/show_bug.cgi?id=1235765
Reported-by: Vojtech Lacina <vlacina@suse.com>
Signed-off-by: Qu Wenruo <wqu@suse.com>
2025-02-15 00:08:32 +01:00
Mark Harmstone
aaf0cf3805 btrfs-progs: mkfs: set incompat bit BIG_METADATA if nodesize > PAGE_SIZE
Follow the kernel by setting the BIG_METADATA incompat flag if nodesize
is greater than the page size.

This flag was introduced with commit 727011e07cbdf8 ("Btrfs: allow
metadata blocks larger than the page size") in 2010, as kernels before
2.6.36 would crash due to a buggy page cache implementation.
The flag has no real meaning anymore but we can at least set it at mkfs
time.

Signed-off-by: Mark Harmstone <maharmstone@fb.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
Mark Harmstone
ff840e50f3 btrfs-progs: mkfs: add dev stats and device items
The kernel adds a zeroed btrfs_dev_stats_item for each device on the
first mount. Preempt this by doing it at mkfs time.

Signed-off-by: Mark Harmstone <maharmstone@fb.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
Mark Harmstone
de33a537ff btrfs-progs: mkfs: set BTRFS_INODE_ROOT_ITEM_INIT on new FS root
The kernel commit 08fe4db170b419 ("Btrfs: Fix uninitialized root flags
for subvolumes") from 2011 sets the flag BTRFS_INODE_ROOT_ITEM_INIT on
root items, to work around a bug where flags and byte_limit weren't
being set.

Copy this behaviour in mkfs, to prevent the kernel from having to do it
on the first mount. We memset the btrfs_root_item, so there's no
corruption issue as there once was. We already do this in
btrfs_make_subvolume(), as otherwise the readonly flag of any subvolumes
would get reset.

Signed-off-by: Mark Harmstone <maharmstone@fb.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
David Sterba
d3c430b116 btrfs-progs: docs: fix document references in html build
The references used in :doc: need to reference relative path of the
document, otherwise this leads to a warning.

  btrfs-progs/Documentation/Send-receive.rst:19: WARNING: unknown document: 'dev-send-stream' [ref.doc]
  btrfs-progs/Documentation/dev/CmdLineConventions.rst:60: WARNING: unknown document: 'btrfstune' [ref.doc]

Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00
David Sterba
2f09d42d6b btrfs-progs: docs: update sysfs descriptions
Add sections for each directory so it's more visible where the sections
start and end. Update formatting, enhance descriptions.

Signed-off-by: David Sterba <dsterba@suse.com>
2025-02-15 00:08:32 +01:00