mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-02-16 04:12:26 +02:00
copy: call extent_copy also when make_holes is false, ...
so that we benefit from using extents also when reading a sparse input file with --sparse=never. * src/copy.c (copy_reg): Remove erroneous test of "make_holes" so that we call extent_copy also when make_holes is false. Otherwise, what's the point of that parameter?
This commit is contained in:
29
src/copy.c
29
src/copy.c
@@ -868,23 +868,20 @@ copy_reg (char const *src_name, char const *dst_name,
|
||||
#endif
|
||||
}
|
||||
|
||||
if (make_holes)
|
||||
{
|
||||
bool require_normal_copy;
|
||||
/* Perform efficient extent copy for sparse file, fall back to the
|
||||
standard copy only if the initial extent scan fails. If the
|
||||
'--sparse=never' option was specified, we writing all data but
|
||||
use extent copy if available to efficiently read. */
|
||||
if (extent_copy (source_desc, dest_desc, buf_size,
|
||||
src_open_sb.st_size, make_holes,
|
||||
src_name, dst_name, &require_normal_copy))
|
||||
goto preserve_metadata;
|
||||
bool require_normal_copy;
|
||||
/* Perform efficient extent copy for sparse file, fall back to the
|
||||
standard copy only if the initial extent scan fails. If the
|
||||
'--sparse=never' option was specified, we writing all data but
|
||||
use extent copy if available to efficiently read. */
|
||||
if (extent_copy (source_desc, dest_desc, buf_size,
|
||||
src_open_sb.st_size, make_holes,
|
||||
src_name, dst_name, &require_normal_copy))
|
||||
goto preserve_metadata;
|
||||
|
||||
if (! require_normal_copy)
|
||||
{
|
||||
return_val = false;
|
||||
goto close_src_and_dst_desc;
|
||||
}
|
||||
if (! require_normal_copy)
|
||||
{
|
||||
return_val = false;
|
||||
goto close_src_and_dst_desc;
|
||||
}
|
||||
|
||||
/* If not making a sparse file, try to use a more-efficient
|
||||
|
||||
Reference in New Issue
Block a user