[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 30/41] qemu-file: fsync a writable stdio QEMUFile
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 30/41] qemu-file: fsync a writable stdio QEMUFile |
Date: |
Fri, 15 Feb 2013 18:47:02 +0100 |
This is what fd_close does. Prepare for switching to a QEMUFile.
Signed-off-by: Paolo Bonzini <address@hidden>
---
savevm.c | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/savevm.c b/savevm.c
index d7c2559..261d17a 100644
--- a/savevm.c
+++ b/savevm.c
@@ -256,6 +256,24 @@ static int stdio_fclose(void *opaque)
{
QEMUFileStdio *s = opaque;
int ret = 0;
+
+ if (s->file->ops->put_buffer) {
+ int fd = fileno(s->stdio_file);
+ struct stat st;
+
+ ret = fstat(fd, &st);
+ if (ret == 0 && S_ISREG(st.st_mode)) {
+ /*
+ * If the file handle is a regular file make sure the
+ * data is flushed to disk before signaling success.
+ */
+ ret = fsync(fd);
+ if (ret != 0) {
+ ret = -errno;
+ return ret;
+ }
+ }
+ }
if (fclose(s->stdio_file) == EOF) {
ret = -errno;
}
--
1.7.1
- Re: [Qemu-devel] [PATCH 22/41] migration: yay, buffering is gone, (continued)
- [Qemu-devel] [PATCH 27/41] migration: remove useless qemu_file_get_error check, Paolo Bonzini, 2013/02/15
- [Qemu-devel] [PATCH 25/41] migration: eliminate last_round, Paolo Bonzini, 2013/02/15
- [Qemu-devel] [PATCH 26/41] migration: detect error before sleeping, Paolo Bonzini, 2013/02/15
- [Qemu-devel] [PATCH 30/41] qemu-file: fsync a writable stdio QEMUFile,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 31/41] qemu-file: check exit status when closing a pipe QEMUFile, Paolo Bonzini, 2013/02/15
- [Qemu-devel] [PATCH 39/41] migration: move contents of migration_close to migrate_fd_cleanup, Paolo Bonzini, 2013/02/15
- [Qemu-devel] [PATCH 36/41] migration: use qemu_ftell to compute bandwidth, Paolo Bonzini, 2013/02/15