From: Stefano Stabellini Date: Fri, 21 Jan 2011 18:01:53 +0000 (+0000) Subject: qemu-xen: disable buffering on the save file for stubdoms X-Git-Tag: xen-4.1.0-rc2^0 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=6a6ffc07f465d5abc94b45ce6fe389369d1395ab;p=qemu-xen-4.4-testing.git qemu-xen: disable buffering on the save file for stubdoms We need to issue reads with the exact number of bytes to read the qemu-xen save file, and to do that this patch disables buffering on all the savevm reads/writes for stubdoms. [This is pretty horrid; hopefully there will be better solution for 4.2 -iwj] Signed-off-by: Stefano Stabellini --- diff --git a/savevm.c b/savevm.c index b66f7e271..71a57ebac 100644 --- a/savevm.c +++ b/savevm.c @@ -133,7 +133,13 @@ void qemu_announce_self(void) /***********************************************************/ /* savevm/loadvm support */ +#ifdef CONFIG_STUBDOM +/* disable buffering for stubdoms because we need to issue reads for the + * exact number of bytes */ +#define IO_BUF_SIZE 1 +#else #define IO_BUF_SIZE 32768 +#endif struct QEMUFile { QEMUFilePutBufferFunc *put_buffer; @@ -303,6 +309,10 @@ QEMUFile *qemu_fopen(const char *filename, const char *mode) if (!s->outfile) goto fail; +#ifdef CONFIG_STUBDOM + setvbuf(s->outfile, NULL, _IONBF, 0); +#endif + if (!strcmp(mode, "wb")) return qemu_fopen_ops(s, file_put_buffer, NULL, file_close, NULL); else if (!strcmp(mode, "rb"))