From: Lennart Poettering Date: Fri, 23 Mar 2018 17:24:07 +0000 (+0100) Subject: copy: drop _unlikely_() that isn't obviously the case X-Git-Tag: v239~416^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=75036dce9418024a05d20db3c5fb069aeccdec5d;p=platform%2Fupstream%2Fsystemd.git 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. --- diff --git a/src/basic/copy.c b/src/basic/copy.c index 18a245a..96d059d 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 {