summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2011-01-27 21:01:07 +0100
committerJim Meyering <meyering@redhat.com>2011-01-30 20:44:12 +0100
commit8da69cbf30a24dfb328676a4630ccc12e445a85d (patch)
tree89a4666bea2fb22dafccfd14146754f23a771c97 /src
parent82c7f192bde285bcf5f8d25e0ec1996534382315 (diff)
downloadcoreutils-8da69cbf30a24dfb328676a4630ccc12e445a85d.tar.xz
copy: remove obsolete comment
* src/copy.c (sparse_copy): Remove now-obsolete comment about how we used to work around lack of ftruncate. Combine nested if conditions into one.
Diffstat (limited to 'src')
-rw-r--r--src/copy.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/src/copy.c b/src/copy.c
index cc8f68f14..4bfdce68b 100644
--- a/src/copy.c
+++ b/src/copy.c
@@ -137,7 +137,10 @@ utimens_symlink (char const *file, struct timespec const *timespec)
/* Copy the regular file open on SRC_FD/SRC_NAME to DST_FD/DST_NAME,
honoring the MAKE_HOLES setting and using the BUF_SIZE-byte buffer
BUF for temporary storage. Return true upon successful completion;
- print a diagnostic and return false upon error. */
+ print a diagnostic and return false upon error.
+ Note that for best results, BUF should be "well"-aligned.
+ BUF must have sizeof(uintptr_t)-1 bytes of additional space
+ beyond BUF[BUF_SIZE-1]. */
static bool
sparse_copy (int src_fd, int dest_fd, char *buf, size_t buf_size,
bool make_holes,
@@ -227,18 +230,12 @@ sparse_copy (int src_fd, int dest_fd, char *buf, size_t buf_size,
}
}
- /* If the file ends with a `hole', we need to do something to record
- the length of the file. On modern systems, calling ftruncate does
- the job. On systems without native ftruncate support, we have to
- write a byte at the ending position. Otherwise the kernel would
- truncate the file at the end of the last write operation. */
- if (last_write_made_hole)
+ /* If the file ends with a `hole', we need to do something to record the
+ length of the file. On modern systems, calling ftruncate does the job. */
+ if (last_write_made_hole && ftruncate (dest_fd, n_read_total) < 0)
{
- if (ftruncate (dest_fd, n_read_total) < 0)
- {
- error (0, errno, _("truncating %s"), quote (dst_name));
- return false;
- }
+ error (0, errno, _("truncating %s"), quote (dst_name));
+ return false;
}
return true;