From 5d65b5e6333cfdd14ab0e944cef8474445e531b3 Mon Sep 17 00:00:00 2001 From: "Alan D. Brunelle" Date: Tue, 17 Feb 2009 08:48:40 -0500 Subject: Fixed EAGAIN handling in blktrace.c EAGAIN was causing header failures in network mode. Added in a usleep and retried the recv(). Signed-off-by: Alan D. Brunelle --- blktrace.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/blktrace.c b/blktrace.c index 6469586..26b3afd 100644 --- a/blktrace.c +++ b/blktrace.c @@ -799,8 +799,11 @@ static int __net_recv_data(int fd, void *buf, unsigned int len) if (ret == 0) break; else if (ret < 0) { - if (errno != EAGAIN) - perror("server: net_recv_data: recv failed"); + if (errno == EAGAIN) { + usleep(50); + continue; + } + perror("server: net_recv_data: recv failed"); break; } else { buf += ret; -- cgit v1.2.3