summaryrefslogtreecommitdiff
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
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.
-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 {