From c14e5a1a5018f4407390488dfea387e5dc81c817 Mon Sep 17 00:00:00 2001 From: "Randall S. Becker" Date: Thu, 3 Jan 2019 16:03:48 -0500 Subject: transport-helper: use xread instead of read This fix was needed on HPE NonStop NSE and NSX where SSIZE_MAX is less than BUFFERSIZE resulting in EINVAL. The call to read in transport-helper.c was the only place outside of wrapper.c where it is used instead of xread. Signed-off-by: Randall S. Becker Signed-off-by: Junio C Hamano --- transport-helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'transport-helper.c') diff --git a/transport-helper.c b/transport-helper.c index bf225c698f..a290695a12 100644 --- a/transport-helper.c +++ b/transport-helper.c @@ -1225,7 +1225,7 @@ static int udt_do_read(struct unidirectional_transfer *t) return 0; /* No space for more. */ transfer_debug("%s is readable", t->src_name); - bytes = read(t->src, t->buf + t->bufuse, BUFFERSIZE - t->bufuse); + bytes = xread(t->src, t->buf + t->bufuse, BUFFERSIZE - t->bufuse); if (bytes < 0 && errno != EWOULDBLOCK && errno != EAGAIN && errno != EINTR) { error_errno(_("read(%s) failed"), t->src_name); -- cgit v1.2.3 From d4c813689b2b320f8907a615fcf1f1d27ae44f37 Mon Sep 17 00:00:00 2001 From: Jeff King Date: Thu, 11 Jan 2018 01:31:10 -0500 Subject: transport-helper: drop read/write errno checks Since we use xread() and xwrite() here, EINTR, EAGAIN, and EWOULDBLOCK retries are already handled for us, and we will never see these errno values ourselves. We can drop these conditions entirely, making the code easier to follow. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- transport-helper.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'transport-helper.c') diff --git a/transport-helper.c b/transport-helper.c index a290695a12..a87fdf7b0b 100644 --- a/transport-helper.c +++ b/transport-helper.c @@ -1226,8 +1226,7 @@ static int udt_do_read(struct unidirectional_transfer *t) transfer_debug("%s is readable", t->src_name); bytes = xread(t->src, t->buf + t->bufuse, BUFFERSIZE - t->bufuse); - if (bytes < 0 && errno != EWOULDBLOCK && errno != EAGAIN && - errno != EINTR) { + if (bytes < 0) { error_errno(_("read(%s) failed"), t->src_name); return -1; } else if (bytes == 0) { @@ -1254,7 +1253,7 @@ static int udt_do_write(struct unidirectional_transfer *t) transfer_debug("%s is writable", t->dest_name); bytes = xwrite(t->dest, t->buf, t->bufuse); - if (bytes < 0 && errno != EWOULDBLOCK) { + if (bytes < 0) { error_errno(_("write(%s) failed"), t->dest_name); return -1; } else if (bytes > 0) { -- cgit v1.2.3