From 7532dc26edc72f4ec98acd0a62e1b02994c34171 Mon Sep 17 00:00:00 2001
From: Andre Noll <maan@systemlinux.org>
Date: Sat, 30 Mar 2013 19:12:40 +0000
Subject: [PATCH] file writer: Use xwrite() instead of plain write().

Currently the file writer's ->post_select() sets t->error to -1 on
errors, rather than using a proper error code. This may result in
a segfault when this number is passed to para_strerror().

Replacing the call to write() by xwrite() not only gives a proper
error code but also treats EAGAIN as a non-fatal error.
---
 file_write.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/file_write.c b/file_write.c
index 28fddcb6..cea21cb3 100644
--- a/file_write.c
+++ b/file_write.c
@@ -122,7 +122,7 @@ static int file_write_post_select(__a_unused struct sched *s,
 	bytes = btr_next_buffer(btrn, &buf);
 	assert(bytes > 0);
 	//PARA_INFO_LOG("writing %zu\n", bytes);
-	ret = write(pfwd->fd, buf, bytes);
+	ret = xwrite(pfwd->fd, buf, bytes);
 	if (ret < 0)
 		goto out;
 	btr_consume(btrn, ret);
-- 
2.39.5