summaryrefslogtreecommitdiff
path: root/block/vvfat.c
diff options
context:
space:
mode:
authorKevin Wolf <mail@kevin-wolf.de>2010-09-10 12:27:04 +0200
committerKevin Wolf <kwolf@redhat.com>2010-09-21 15:39:42 +0200
commita655211ac6d379c5b0813761e5d11415780f41fd (patch)
treec323273c59aa318f58495332cb471289f5c3b5c8 /block/vvfat.c
parent9217e26f43df4aab7deaea35b21caacc1f1f854b (diff)
downloadqemu-a655211ac6d379c5b0813761e5d11415780f41fd.tar.gz
vvfat: Use cache=unsafe
The qcow file used for write support in vvfat is a temporary file, so we can use cache=unsafe there. Without this, write support is just too slow to be of any use. Signed-off-by: Kevin Wolf <mail@kevin-wolf.de>
Diffstat (limited to 'block/vvfat.c')
-rw-r--r--block/vvfat.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/block/vvfat.c b/block/vvfat.c
index 07720371c9..53e57bf228 100644
--- a/block/vvfat.c
+++ b/block/vvfat.c
@@ -2788,6 +2788,7 @@ static int enable_write_target(BDRVVVFATState *s)
{
BlockDriver *bdrv_qcow;
QEMUOptionParameter *options;
+ int ret;
int size = sector2cluster(s, s->sector_count);
s->used_clusters = calloc(size, 1);
@@ -2803,11 +2804,16 @@ static int enable_write_target(BDRVVVFATState *s)
if (bdrv_create(bdrv_qcow, s->qcow_filename, options) < 0)
return -1;
+
s->qcow = bdrv_new("");
- if (s->qcow == NULL ||
- bdrv_open(s->qcow, s->qcow_filename, BDRV_O_RDWR, bdrv_qcow) < 0)
- {
- return -1;
+ if (s->qcow == NULL) {
+ return -1;
+ }
+
+ ret = bdrv_open(s->qcow, s->qcow_filename,
+ BDRV_O_RDWR | BDRV_O_CACHE_WB | BDRV_O_NO_FLUSH, bdrv_qcow);
+ if (ret < 0) {
+ return ret;
}
#ifndef _WIN32