Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Björn Jacke <bjacke@samba.org>
/* similar pattern to net_write() to support pipes */
while (rem > 0) {
+ int ret;
+
count = fwrite(cbuf, 1, rem, F(sp));
if (count < 0) {
if (errno == EINTR)
}
cbuf += count;
rem -= count;
+#ifdef _AIX
+ /*
+ * fwrite has broken caching on AIX
+ */
+ do {
+ ret = stdio_sync(sp);
+ } while (ret == EINTR);
+ if (ret != 0) {
+ errno = ret;
+ POS(sp) = -1;
+ return -1;
+ }
+#endif /* _AIX */
}
if (POS(sp) >= 0)
POS(sp) += size;