diff options
author | Petr Uzel | 2012-05-15 10:49:02 +0200 |
---|---|---|
committer | Karel Zak | 2012-05-15 11:32:36 +0200 |
commit | f80e9bc30a2ae9032790b888abc6ffc8ca90a940 (patch) | |
tree | 0487dfa6dd1dfa954ba652d12af83d2b2430b2ea | |
parent | include: rename writeall.h to all-io.h (diff) | |
download | kernel-qcow2-util-linux-f80e9bc30a2ae9032790b888abc6ffc8ca90a940.tar.gz kernel-qcow2-util-linux-f80e9bc30a2ae9032790b888abc6ffc8ca90a940.tar.xz kernel-qcow2-util-linux-f80e9bc30a2ae9032790b888abc6ffc8ca90a940.zip |
libuuid: move read_all to include/all-io.h
Signed-off-by: Petr Uzel <petr.uzel@suse.cz>
-rw-r--r-- | include/all-io.h | 25 | ||||
-rw-r--r-- | libuuid/src/gen_uuid.c | 26 | ||||
-rw-r--r-- | misc-utils/uuidd.c | 24 |
3 files changed, 26 insertions, 49 deletions
diff --git a/include/all-io.h b/include/all-io.h index 4d1ae1e53..b79d702bd 100644 --- a/include/all-io.h +++ b/include/all-io.h @@ -44,4 +44,29 @@ static inline int fwrite_all(const void *ptr, size_t size, return 0; } +static inline ssize_t read_all(int fd, char *buf, size_t count) +{ + ssize_t ret; + ssize_t c = 0; + int tries = 0; + + memset(buf, 0, count); + while (count > 0) { + ret = read(fd, buf, count); + if (ret <= 0) { + if ((errno == EAGAIN || errno == EINTR || ret == 0) && + (tries++ < 5)) + continue; + return c ? c : -1; + } + if (ret > 0) + tries = 0; + count -= ret; + buf += ret; + c += ret; + } + return c; +} + + #endif /* UTIL_LINUX_ALL_IO_H */ diff --git a/libuuid/src/gen_uuid.c b/libuuid/src/gen_uuid.c index 93d292a22..9d5575b85 100644 --- a/libuuid/src/gen_uuid.c +++ b/libuuid/src/gen_uuid.c @@ -87,6 +87,7 @@ #include <sys/syscall.h> #endif +#include "all-io.h" #include "uuidP.h" #include "uuidd.h" #include "randutils.h" @@ -334,31 +335,6 @@ try_again: } #if defined(HAVE_UUIDD) && defined(HAVE_SYS_UN_H) -/* used in get_uuid_via_daemon() only */ -static ssize_t read_all(int fd, char *buf, size_t count) -{ - ssize_t ret; - ssize_t c = 0; - int tries = 0; - - memset(buf, 0, count); - while (count > 0) { - ret = read(fd, buf, count); - if (ret <= 0) { - if ((errno == EAGAIN || errno == EINTR || ret == 0) && - (tries++ < 5)) - continue; - return c ? c : -1; - } - if (ret > 0) - tries = 0; - count -= ret; - buf += ret; - c += ret; - } - return c; -} - /* * Try using the uuidd daemon to generate the UUID * diff --git a/misc-utils/uuidd.c b/misc-utils/uuidd.c index 65ee55ad0..3dde49e1b 100644 --- a/misc-utils/uuidd.c +++ b/misc-utils/uuidd.c @@ -101,30 +101,6 @@ static void create_daemon(void) err(EXIT_FAILURE, "setreuid"); } -static ssize_t read_all(int fd, char *buf, size_t count) -{ - ssize_t ret; - ssize_t c = 0; - int tries = 0; - - memset(buf, 0, count); - while (count > 0) { - ret = read(fd, buf, count); - if (ret <= 0) { - if ((errno == EAGAIN || errno == EINTR || ret == 0) && - (tries++ < 5)) - continue; - return c ? c : -1; - } - if (ret > 0) - tries = 0; - count -= ret; - buf += ret; - c += ret; - } - return c; -} - static const char *cleanup_pidfile, *cleanup_socket; static void terminate_intr(int signo CODE_ATTR((unused))) |