summaryrefslogtreecommitdiff
path: root/src/basic/copy.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-03-23 18:24:07 +0100
committerLennart Poettering <lennart@poettering.net>2018-04-13 11:32:46 +0200
commit75036dce9418024a05d20db3c5fb069aeccdec5d (patch)
treed78ad421f39c5706115148f15c4cff7f4c6792ae /src/basic/copy.c
parente0c5c7d8fa07f44c2b694c809703cb8a59f0dfed (diff)
downloadsystemd-75036dce9418024a05d20db3c5fb069aeccdec5d.tar.gz
systemd-75036dce9418024a05d20db3c5fb069aeccdec5d.tar.bz2
systemd-75036dce9418024a05d20db3c5fb069aeccdec5d.zip
copy: drop _unlikely_() that isn't obviously the case
If a tool only invokes copy_bytes() a single time the _unlikely_() will always be wrong, and is hence not useful. Let's drop it and let the compiler figure our what to do, instead of misleading it. Also, some coding style imprvoements.
Diffstat (limited to 'src/basic/copy.c')
-rw-r--r--src/basic/copy.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/basic/copy.c b/src/basic/copy.c
index 18a245a92c..96d059d0e5 100644
--- a/src/basic/copy.c
+++ b/src/basic/copy.c
@@ -38,23 +38,25 @@
#define COPY_BUFFER_SIZE (16*1024u)
-static ssize_t try_copy_file_range(int fd_in, loff_t *off_in,
- int fd_out, loff_t *off_out,
- size_t len,
- unsigned int flags) {
+static ssize_t try_copy_file_range(
+ int fd_in, loff_t *off_in,
+ int fd_out, loff_t *off_out,
+ size_t len,
+ unsigned int flags) {
+
static int have = -1;
ssize_t r;
- if (have == false)
+ if (have == 0)
return -ENOSYS;
r = copy_file_range(fd_in, off_in, fd_out, off_out, len, flags);
- if (_unlikely_(have < 0))
+ if (have < 0)
have = r >= 0 || errno != ENOSYS;
- if (r >= 0)
- return r;
- else
+ if (r < 0)
return -errno;
+
+ return r;
}
enum {