summaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2014-10-02 14:07:42 +0100
committerPádraig Brady <P@draigBrady.com>2014-10-15 02:19:16 +0100
commit759b0ac9e7f3fbd0f04090e3142087bf692e47bc (patch)
treea3d72b4d1a25bec8fb4101e8baecf90ee1a28afa /NEWS
parentcb4fc9356f9167f1f92d42a7550c5f5f170179c3 (diff)
downloadcoreutils-759b0ac9e7f3fbd0f04090e3142087bf692e47bc.tar.xz
copy: detect smaller holes than the copy buffer size
Previously cp would not detect runs of NULs that were smaller than the buffer size used for I/O (currently 128KiB). * src/copy.c (copy_reg): Use an independent hole_size, set to st_blksize, to increase the chances of detecting a representable hole, in a run of NULs read from the input. (create_hole): A new function refactored from sparse_copy() and extent_copy() so we have a single place to handle holes. (sparse_copy): Adjust to loop over the larger input buffer in chunks of the passed hole size. Also adjust to only call lseek once per hole, rather than at least once per input buffer. * tests/cp/sparse.sh: Add test cases for various sparse chunk sizes. * NEWS: Mention the improvement.
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS3
1 files changed, 3 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index a323b0c6e..700707039 100644
--- a/NEWS
+++ b/NEWS
@@ -33,6 +33,9 @@ GNU coreutils NEWS -*- outline -*-
** Improvements
+ cp,install,mv will convert smaller runs of NULs in the input to holes,
+ to reduce allocation in the copy.
+
mv will try a reflink before falling back to a standard copy, which is
more efficient when moving files across BTRFS subvolume boundaries.