btrfs-progs/common
David Sterba 5cdaf19529 btrfs-progs: inspect list-chunks: better sorting, updated output
Enhance the sorting capabilities of 'inspect list-chunks' to allow
multiple keys. Drop the gaps, this works only for pstart and it's hard
to make it work with arbitrary sort keys.

Usage is printed by default, assuming this is an interesting info and
even if it slows down the output (due to extra lookups) it's more
convenient to print it rather than not.

The options related to usage and empty were removed.

Output changes:

- rename Number to PNumber, meaning physical number on the device
- print Devid, device number, can be also sort key

Examples:

btrfs inspect list-chunks /mnt
btrfs inspect list-chunks --sort length,usage
btrfs inspect list-chunks --sort lstart

Depending on the sort key order, the output can be wild, for that the
PNumber and LNumber give some hint where the chunks lie in their space.

Example output:

$ sudo ./btrfs inspect list-chunks --sort length,usage /
Devid PNumber      Type/profile    PStart    Length      PEnd LNumber    LStart Usage%
----- ------- ----------------- --------- --------- --------- ------- --------- ------
    1       7       Data/single   1.52GiB  16.00MiB   1.54GiB      69 191.68GiB  86.04
    1       3     System/DUP    117.00MiB  32.00MiB 149.00MiB      40 140.17GiB   0.05
    1       2     System/DUP     85.00MiB  32.00MiB 117.00MiB      39 140.17GiB   0.05
    1      15       Data/single   8.04GiB  64.00MiB   8.10GiB      61 188.60GiB  94.46
    1       1       Data/single   1.00MiB  84.00MiB  85.00MiB      68 191.60GiB  74.24
    1       5   Metadata/DUP    341.00MiB 192.00MiB 533.00MiB      60 188.41GiB  82.58
    1       4   Metadata/DUP    149.00MiB 192.00MiB 341.00MiB      59 188.41GiB  82.58
    1      20   Metadata/DUP      9.29GiB 256.00MiB   9.54GiB      38 139.92GiB  57.76
    1      19   Metadata/DUP      9.04GiB 256.00MiB   9.29GiB      37 139.92GiB  57.76
    1      22   Metadata/DUP      9.79GiB 256.00MiB  10.04GiB      25 113.15GiB  57.93
    1      21   Metadata/DUP      9.54GiB 256.00MiB   9.79GiB      24 113.15GiB  57.93
    1      46   Metadata/DUP     29.29GiB 256.00MiB  29.54GiB      43 142.71GiB  62.38

Signed-off-by: David Sterba <dsterba@suse.com>
2024-06-20 10:15:52 +09:30
..
array.c btrfs-progs: add an extensible pointer array struct 2023-08-28 17:24:24 +02:00
array.h btrfs-progs: add an extensible pointer array struct 2023-08-28 17:24:24 +02:00
box.h btrfs-progs: add btrfs-find-root to btrfs.box 2023-07-26 15:00:48 +02:00
clear-cache.c btrfs-progs: handle btfs_del_items() failure in truncate_free_ino_items() 2024-03-15 00:07:40 +01:00
clear-cache.h btrfs-progs: move clear-cache.[ch] from check/ to common/ directory 2023-10-13 18:13:12 +02:00
cpu-utils.c btrfs-progs: clean up includes, using include-what-you-use 2023-10-03 01:11:57 +02:00
cpu-utils.h btrfs-progs: detect PCLMUL CPU support for accelerated crc32c 2023-09-13 00:38:50 +02:00
defs.h btrfs-progs: move common-defs to common/ 2020-03-31 18:37:35 +02:00
device-scan.c btrfs-progs: rename and move __strncpy_null to string-utils 2024-06-20 10:15:52 +09:30
device-scan.h btrfs-progs: replace btrfs_open_dir with btrfs_open_dir_fd 2024-02-20 11:40:08 +01:00
device-utils.c btrfs-progs: support byte length for zone resetting 2024-06-03 21:26:39 +02:00
device-utils.h btrfs-progs: convert defined constants to enums 2024-02-08 08:30:37 +01:00
extent-cache.c btrfs-progs: make all parameters of rb_tree search/insert const 2024-03-12 21:43:54 +01:00
extent-cache.h btrfs-progs: common: update include lists, part 1 2022-10-11 09:08:07 +02:00
extent-tree-utils.c btrfs-progs: reorder key initializations 2024-04-30 21:49:15 +02:00
extent-tree-utils.h btrfs-progs: clean up includes, using include-what-you-use 2023-10-03 01:11:57 +02:00
filesystem-utils.c btrfs-progs: rename and move __strncpy_null to string-utils 2024-06-20 10:15:52 +09:30
filesystem-utils.h btrfs-progs: common: update include lists, part 1 2022-10-11 09:08:07 +02:00
format-output.c btrfs-progs: properly close va_copy in fmt_set_unquoted() 2024-04-18 19:16:15 +02:00
format-output.h btrfs-progs: rename time-long format name to date-time 2023-08-28 17:24:23 +02:00
fsfeatures.c btrfs-progs: move RST back to experimental 2024-06-20 10:15:52 +09:30
fsfeatures.h btrfs-progs: convert: remove raid-stripe-tree support 2024-06-20 10:15:52 +09:30
help.c btrfs-progs: use strncpy_null everywhere 2024-06-20 10:15:52 +09:30
help.h btrfs-progs: add support for dry-run options 2023-11-03 18:04:37 +01:00
inject-error.c btrfs-progs: clean up includes, using include-what-you-use 2023-10-03 01:11:57 +02:00
inject-error.h btrfs-progs: clean up includes, using include-what-you-use 2023-10-03 01:11:57 +02:00
internal.h btrfs-progs: pull in the full max/min/clamp implementation from kernel 2023-10-10 19:16:29 +02:00
messages.c btrfs-progs: handle write errors in btrfs_add_to_fsid() 2024-03-16 22:25:50 +01:00
messages.h btrfs-progs: handle write errors in btrfs_add_to_fsid() 2024-03-16 22:25:50 +01:00
open-utils.c btrfs-progs: use strncpy_null everywhere 2024-06-20 10:15:52 +09:30
open-utils.h btrfs-progs: rename btrfs_open_fd2() to btrfs_open_path() 2024-02-20 12:59:29 +01:00
parse-utils.c btrfs-progs: implement arg_strtou64_with_suffix() with a new helper 2024-01-18 02:14:23 +01:00
parse-utils.h btrfs-progs: implement arg_strtou64_with_suffix() with a new helper 2024-01-18 02:14:23 +01:00
path-utils.c btrfs-progs: rename and move __strncpy_null to string-utils 2024-06-20 10:15:52 +09:30
path-utils.h btrfs-progs: rename and move __strncpy_null to string-utils 2024-06-20 10:15:52 +09:30
rbtree-utils.c btrfs-progs: make all parameters of rb_tree search/insert const 2024-03-12 21:43:54 +01:00
rbtree-utils.h btrfs-progs: make all parameters of rb_tree search/insert const 2024-03-12 21:43:54 +01:00
send-stream.c btrfs-progs: receive: fix reading header on strict alignment hosts 2024-05-25 00:37:51 +02:00
send-stream.h btrfs-progs: clean up includes, using include-what-you-use 2023-10-03 01:11:57 +02:00
send-utils.c btrfs-progs: reorder key initializations 2024-04-30 21:49:15 +02:00
send-utils.h btrfs-progs: clean up includes, using include-what-you-use 2023-10-03 01:11:57 +02:00
sort-utils.c btrfs-progs: update sorting API 2024-06-20 10:15:52 +09:30
sort-utils.h btrfs-progs: inspect list-chunks: better sorting, updated output 2024-06-20 10:15:52 +09:30
string-table.c btrfs-progs: string-table: fix memory leak on exit path in table_vprintf() 2024-04-18 19:16:15 +02:00
string-table.h btrfs-progs: string-table: add ranged API for printing and clearing 2022-12-05 20:32:02 +01:00
string-utils.c btrfs-progs: rename and move __strncpy_null to string-utils 2024-06-20 10:15:52 +09:30
string-utils.h btrfs-progs: rename and move __strncpy_null to string-utils 2024-06-20 10:15:52 +09:30
sysfs-utils.c btrfs-progs: change all sysfs helpers to return errno 2023-12-09 01:17:22 +01:00
sysfs-utils.h btrfs-progs: add write helpers for sysfs files 2023-12-09 01:17:22 +01:00
task-utils.c btrfs-progs: common: update include lists, part 1 2022-10-11 09:08:07 +02:00
task-utils.h btrfs-progs: common: update include lists, part 1 2022-10-11 09:08:07 +02:00
tree-search.h btrfs-progs: add API for selecting tree search support and ioctl 2024-03-16 18:08:38 +01:00
units.c btrfs-progs: introduce UASSERT() for purely userspace code 2023-05-26 18:02:28 +02:00
units.h btrfs-progs: common: update include lists, part 1 2022-10-11 09:08:07 +02:00
utils.c btrfs-progs: reorder key initializations 2024-04-30 21:49:15 +02:00
utils.h btrfs-progs: convert: insert a dummy inode item before inode ref for ext2/4 2024-01-17 01:47:39 +01:00