diff options
Diffstat (limited to 'support/nfs/atomicio.c')
-rw-r--r-- | support/nfs/atomicio.c | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/support/nfs/atomicio.c b/support/nfs/atomicio.c index 1fb1ff9..5e760e6 100644 --- a/support/nfs/atomicio.c +++ b/support/nfs/atomicio.c @@ -28,25 +28,15 @@ #include <unistd.h> #include <errno.h> -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif /* HAVE_CONFIG_H */ - /* * ensure all of data on socket comes through. f==read || f==write */ -ssize_t -atomicio( - ssize_t (*f) (int, void*, size_t), - int fd, - void *_s, - size_t n) +ssize_t atomicio(ssize_t(*f) (int, void *, size_t), int fd, void *_s, size_t n) { char *s = _s; - ssize_t res; - size_t pos = 0; + ssize_t res, pos = 0; - while (n > pos) { + while ((ssize_t)n > pos) { res = (f) (fd, s + pos, n - pos); switch (res) { case -1: @@ -54,11 +44,11 @@ atomicio( continue; case 0: if (pos != 0) - return (pos); - return (res); + return pos; + return res; default: pos += res; } } - return (pos); + return pos; } |