diff options
author | Jim Meyering <meyering@redhat.com> | 2011-01-22 12:36:03 +0100 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2011-01-30 20:44:11 +0100 |
commit | 0497a86f7001526f7cf35e0f876063a06a748e4b (patch) | |
tree | 59120d05b583d5cad5a4891cc69b9b36a7c647c1 | |
parent | 8ecb0c76c3a92790bb452f99910556c6c6a838d2 (diff) | |
download | coreutils-0497a86f7001526f7cf35e0f876063a06a748e4b.tar.xz |
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?
-rw-r--r-- | src/copy.c | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/src/copy.c b/src/copy.c index 71da00d74..be7fdba7b 100644 --- a/src/copy.c +++ b/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; + + if (! require_normal_copy) { - 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; - } + return_val = false; + goto close_src_and_dst_desc; } /* If not making a sparse file, try to use a more-efficient |