diff options
Diffstat (limited to 'block-qcow.c')
-rw-r--r-- | block-qcow.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/block-qcow.c b/block-qcow.c index 730ae67ed8..0ac2b42b4f 100644 --- a/block-qcow.c +++ b/block-qcow.c @@ -752,11 +752,15 @@ static int qcow_create(const char *filename, int64_t total_size, header_size = sizeof(header); backing_filename_len = 0; if (backing_file) { - header.backing_file_offset = cpu_to_be64(header_size); - backing_filename_len = strlen(backing_file); - header.backing_file_size = cpu_to_be32(backing_filename_len); - header_size += backing_filename_len; - header.mtime = cpu_to_be32(0); + if (strcmp(backing_file, "fat:")) { + header.backing_file_offset = cpu_to_be64(header_size); + backing_filename_len = strlen(backing_file); + header.backing_file_size = cpu_to_be32(backing_filename_len); + header_size += backing_filename_len; + } else { + /* special backing file for vvfat */ + backing_file = NULL; + } header.cluster_bits = 9; /* 512 byte cluster to avoid copying unmodifyed sectors */ header.l2_bits = 12; /* 32 KB L2 tables */ |