diff options
author | Shehjar Tikoo <shehjart@gluster.com> | 2011-03-15 01:53:41 +0000 |
---|---|---|
committer | Anand Avati <avati@gluster.com> | 2011-04-11 01:37:32 -0700 |
commit | 4248b4e501abd647e337328944778b447dc5a34d (patch) | |
tree | 766288e2b72bb0bec5a6f7ecaf869b848db6ab47 /xlators/nfs/lib/src/rpc-socket.c | |
parent | 7b368061eaf15cf8b6e8adc3506b5baabdc466e8 (diff) |
nfs-rpc: Exit txbuf transmission loop on EAGAIN
..instead of looping till the buffer is completely transmitted.
Signed-off-by: Shehjar Tikoo <shehjart@gluster.com>
Signed-off-by: Anand Avati <avati@gluster.com>
BUG: 2491 ([glusterfs-3.1.3qa4]: iozone fails due to data corruption)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2491
Diffstat (limited to 'xlators/nfs/lib/src/rpc-socket.c')
-rw-r--r-- | xlators/nfs/lib/src/rpc-socket.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/xlators/nfs/lib/src/rpc-socket.c b/xlators/nfs/lib/src/rpc-socket.c index 6c399d90416..ec56f3fc49e 100644 --- a/xlators/nfs/lib/src/rpc-socket.c +++ b/xlators/nfs/lib/src/rpc-socket.c @@ -226,7 +226,7 @@ nfs_rpcsvc_socket_read (int sockfd, char *readaddr, size_t readsize) ssize_t -nfs_rpcsvc_socket_write (int sockfd, char *buffer, size_t size) +nfs_rpcsvc_socket_write (int sockfd, char *buffer, size_t size, int *eagain) { size_t writelen = -1; ssize_t written = 0; @@ -240,8 +240,10 @@ nfs_rpcsvc_socket_write (int sockfd, char *buffer, size_t size) if (errno != EAGAIN) { written = -1; break; - } else + } else { + *eagain = 1; break; + } } else if (writelen == 0) break; |