
On Mon, Feb 08, 2010 at 04:59:31PM +0100, Jiri Denemark wrote:
When creating preallocated large raw files opening them with O_DSYNC prevents long delays in reading because cache pages can be immediately reused without writing them on a disk first.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/storage/storage_backend.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c index e79294a..8aab9ab 100644 --- a/src/storage/storage_backend.c +++ b/src/storage/storage_backend.c @@ -301,7 +301,7 @@ virStorageBackendCreateRaw(virConnectPtr conn, goto cleanup; }
- if ((fd = open(vol->target.path, O_RDWR | O_EXCL)) < 0) { + if ((fd = open(vol->target.path, O_RDWR | O_EXCL | O_DSYNC)) < 0) { virReportSystemError(conn, errno, _("cannot open new path '%s'"), vol->target.path); --
ACK, O_DSYNC isn't ideal, but since there are soo many ways in which the file ends up being written, it is the simplest option to get what we need Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|