btrfs-progs/cmds
Boris Burkov d20e759fc9 btrfs-progs: receive: encoded_write fallback to explicit decode and write
An encoded_write can fail if the file system it is being applied to does
not support encoded writes or if it can't find enough contiguous space
to accommodate the encoded extent. In those cases, we can likely still
process an encoded_write by explicitly decoding the data and doing a
normal write.

Add the necessary fallback path for decoding data compressed with zlib,
lzo, or zstd. zlib and zstd have reusable decoding context data
structures which we cache in the receive context so that we don't have
to recreate them on every encoded_write.

Finally, add a command line flag for force-decompress which causes
receive to always use the fallback path rather than first attempting the
encoded write.

Signed-off-by: Boris Burkov <boris@bur.io>
Signed-off-by: David Sterba <dsterba@suse.com>
2022-06-07 13:59:32 +02:00
..
balance.c btrfs-progs: factor out profile parsing to common utils 2021-09-07 13:58:44 +02:00
commands.h btrfs-progs: split subvolume list to its own file 2021-10-08 20:47:03 +02:00
device.c btrfs-progs: fix a bunch of typos 2022-02-01 18:40:53 +01:00
filesystem-du.c btrfs-progs: fi du: skip inaccessible files 2021-11-30 18:40:18 +01:00
filesystem-usage.c btrfs-progs: fi usage: fix calculation of chunk size for RAID1/DUP profiles 2021-11-18 10:17:33 +01:00
filesystem-usage.h btrfs-progs: move all cmds-fi*.c to cmds/ 2019-07-03 20:49:03 +02:00
filesystem.c btrfs-progs: fix a bunch of typos 2022-02-01 18:40:53 +01:00
inspect-dump-super.c btrfs-progs: remove temporary buffer for super block 2021-11-05 12:50:03 +01:00
inspect-dump-tree.c btrfs-progs: add print support for the block group tree 2022-03-09 18:06:54 +01:00
inspect-tree-stats.c btrfs-progs: change btrfs_file_extent_inline_item_len to take a slot 2022-03-09 15:13:13 +01:00
inspect.c btrfs-progs: use btrfs_subvolid_resolve instead of btrfs_list_path_for_root 2021-10-08 20:47:03 +02:00
property.c btrfs-progs: props: don't translate value of compression=none 2022-04-25 18:30:28 +02:00
props.h btrfs-progs: prop set: add force parameter 2021-10-07 18:40:24 +02:00
qgroup.c btrfs-progs: move all private definitions to cmds/qgroup.c 2021-09-07 19:21:14 +02:00
qgroup.h btrfs-progs: move all private definitions to cmds/qgroup.c 2021-09-07 19:21:14 +02:00
quota.c btrfs-progs: split open/close helpers from utils.c 2021-05-06 16:41:47 +02:00
receive-dump.c btrfs-progs: receive: process encoded_write commands 2022-06-07 13:59:32 +02:00
receive-dump.h btrfs-progs: unify GPL header comments 2021-09-07 13:58:44 +02:00
receive.c btrfs-progs: receive: encoded_write fallback to explicit decode and write 2022-06-07 13:59:32 +02:00
replace.c btrfs-progs: replace start: add option -K/--nodiscard 2021-10-06 16:49:35 +02:00
rescue-chunk-recover.c btrfs-progs: remove the _nr from the item helpers 2022-03-09 15:13:13 +01:00
rescue-super-recover.c btrfs-progs: remove temporary buffer for super block 2021-11-05 12:50:03 +01:00
rescue.c btrfs-progs: rescue: introduce clear-uuid-tree 2021-11-22 21:45:37 +01:00
rescue.h btrfs-progs: unify GPL header comments 2021-09-07 13:58:44 +02:00
restore.c btrfs-progs: restore: list the supported compression 2022-05-24 19:21:10 +02:00
scrub.c btrfs-progs: split unit related helpers from utils.c 2021-05-06 16:41:47 +02:00
send.c btrfs-progs: send: properly handle an ERR_PTR in find_good_parent 2022-01-11 17:36:15 +01:00
subvolume-list.c btrfs-progs: subvol list: open code list_subvol_fill_paths in its caller 2021-10-08 20:47:04 +02:00
subvolume.c btrfs-progs: subvolume snapshot: added clarity how snapshot path is interprted 2022-02-16 22:48:01 +01:00