On Wed, 2015-02-18 at 16:34 +0000, Andrew Cooper wrote: > From: Wen Congyang <we...@cn.fujitsu.com> > > datacopier is to read some data and write it out. If we > have some data to send it over network, we cannot use > datacopier. Update it to support this case.
Please can you clarify this commit message. Questions I'm left with after reading it: * What is the relevance of "send it over network" here, why does it matter what the output fd is? Or is this something to do with the lack of an input fd (in which case where does the incoming data come from?) * Why can datacopier not currently be used in this case, what actually goes wrong? * What is the nature of the update which makes it work? (possibly becomes obvious after the previous answers) Thanks. Ian. > > Signed-off-by: Wen Congyang <we...@cn.fujitsu.com> > CC: Ian Campbell <ian.campb...@citrix.com> > CC: Ian Jackson <ian.jack...@eu.citrix.com> > CC: Wei Liu <wei.l...@citrix.com> > --- > tools/libxl/libxl_aoutils.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/tools/libxl/libxl_aoutils.c b/tools/libxl/libxl_aoutils.c > index b10d2e1..3e0c0ae 100644 > --- a/tools/libxl/libxl_aoutils.c > +++ b/tools/libxl/libxl_aoutils.c > @@ -309,9 +309,11 @@ int libxl__datacopier_start(libxl__datacopier_state *dc) > > libxl__datacopier_init(dc); > > - rc = libxl__ev_fd_register(gc, &dc->toread, datacopier_readable, > - dc->readfd, POLLIN); > - if (rc) goto out; > + if (dc->readfd >= 0) { > + rc = libxl__ev_fd_register(gc, &dc->toread, datacopier_readable, > + dc->readfd, POLLIN); > + if (rc) goto out; > + } > > rc = libxl__ev_fd_register(gc, &dc->towrite, datacopier_writable, > dc->writefd, POLLOUT); _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel