This patchset adds copy_file_range() support to gen_init_cpio. When combined with data segment alignment, large-file archiving performance is improved on Btrfs and XFS due to reflinks (see patch 7 benchmarks). cpio data segment alignment is provided by "bending" the newc spec to zero-pad the filename field. GNU cpio and Linux initramfs extractors handle this fine as long as PATH_MAX isn't exceeded. A kernel initramfs extraction unit test for this is provided. Changes since v2 - add Nicolas' Reviewed-by tag to patches 1-7 - add patch 8 test for extracting a cpio archive with filename padding - use trailing '||' for multi-line if conditions instead of prefix - refer to -o output_file in usage instead of output_path - define _GNU_SOURCE alongside O_LARGEFILE use, instead of later Changes since v1 RFC - add alignment patches 6-7 - slightly rework commit and error messages - rename l->len to avoid 1/i confusion