diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mdevd/mdevd_uevent_read.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/mdevd/mdevd_uevent_read.c b/src/mdevd/mdevd_uevent_read.c index 38be5ea..9a395dc 100644 --- a/src/mdevd/mdevd_uevent_read.c +++ b/src/mdevd/mdevd_uevent_read.c @@ -18,9 +18,11 @@ static inline ssize_t fd_recvmsg (int fd, struct msghdr *hdr) { + int e = errno ; ssize_t r ; do r = recvmsg(fd, hdr, 0) ; - while ((r == -1) && (errno == EINTR)) ; + while (r == -1 && errno == EINTR) ; + if (r >= 0) errno = e ; return r ; } |
