projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e606490
)
lguest: fix writev returning short on console output
author
Rusty Russell
<rusty@rustcorp.com.au>
Sat, 13 Jun 2009 04:27:05 +0000
(22:27 -0600)
committer
Rusty Russell
<rusty@rustcorp.com.au>
Fri, 12 Jun 2009 12:57:05 +0000
(22:27 +0930)
I've never seen it here, but I can't find anywhere that says writev
will write everything.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Documentation/lguest/lguest.c
patch
|
blob
|
history
diff --git
a/Documentation/lguest/lguest.c
b/Documentation/lguest/lguest.c
index 8704600c5e426b3ea16c5cf0d3a78ee2579ab773..02fa524cf4ad39dc975c8fa2cae8f733bd7a0f64 100644
(file)
--- a/
Documentation/lguest/lguest.c
+++ b/
Documentation/lguest/lguest.c
@@
-836,7
+836,12
@@
static void handle_console_output(struct virtqueue *vq, bool timeout)
while ((head = get_vq_desc(vq, iov, &out, &in)) != vq->vring.num) {
if (in)
errx(1, "Input buffers in output queue?");
- writev(STDOUT_FILENO, iov, out);
+ while (!iov_empty(iov, out)) {
+ int len = writev(STDOUT_FILENO, iov, out);
+ if (len <= 0)
+ err(1, "Write to stdout gave %i", len);
+ iov_consume(iov, out, len);
+ }
add_used_and_trigger(vq, head, 0);
}
}