Commit 625552f0 authored by Andrei Vagin's avatar Andrei Vagin Committed by Pavel Emelyanov

page-xfer: handle a case when splice returns zero

A return value of 0 means end of input, so we need to
stop reading from this descriptor.
Signed-off-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
parent 89d10280
......@@ -222,6 +222,10 @@ static int write_pages_loc(struct page_xfer *xfer,
pr_perror("Unable to spice data");
return -1;
}
if (ret == 0) {
pr_err("A pipe was closed unexpectedly");
return -1;
}
curr += ret;
if (curr == len)
break;
......@@ -626,6 +630,10 @@ static int page_server_add(int sk, struct page_server_iov *pi)
pr_perror("Can't read from socket");
return -1;
}
if (chunk == 0) {
pr_err("A socket was closed unexpectedly");
return -1;
}
if (lxfer->write_pages(lxfer, cxfer.p[0], chunk))
return -1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment