]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
include/all-io: read_all() don't retry on EOF
authorKarel Zak <kzak@redhat.com>
Tue, 30 Jun 2015 14:05:03 +0000 (16:05 +0200)
committerKarel Zak <kzak@redhat.com>
Mon, 20 Jul 2015 09:48:09 +0000 (11:48 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
include/all-io.h

index 2546cff1bed83c90b006cbdef5e948d44ece3aa2..0623692e1590816e24e069f3da3cd9b8f8e4e325 100644 (file)
@@ -64,8 +64,7 @@ static inline ssize_t read_all(int fd, char *buf, size_t count)
        while (count > 0) {
                ret = read(fd, buf, count);
                if (ret <= 0) {
-                       if ((errno == EAGAIN || errno == EINTR || ret == 0) &&
-                           (tries++ < 5)) {
+                       if (ret < 0 && (errno == EAGAIN || errno == EINTR) && (tries++ < 5)) {
                                xusleep(250000);
                                continue;
                        }
@@ -80,5 +79,4 @@ static inline ssize_t read_all(int fd, char *buf, size_t count)
        return c;
 }
 
-
 #endif /* UTIL_LINUX_ALL_IO_H */