[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PULL 03/24] file-posix: Clear out first sector in hdev_cre
From: |
Kevin Wolf |
Subject: |
[Qemu-block] [PULL 03/24] file-posix: Clear out first sector in hdev_create |
Date: |
Tue, 26 Sep 2017 16:21:12 +0200 |
From: Fam Zheng <address@hidden>
People get surprised when, after "qemu-img create -f raw /dev/sdX", they
still see qcow2 with "qemu-img info", if previously the bdev had a qcow2
header. While this is natural because raw doesn't need to write any
magic bytes during creation, hdev_create is free to clear out the first
sector to make sure the stale qcow2 header doesn't cause such confusion.
Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
block/file-posix.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/block/file-posix.c b/block/file-posix.c
index ab12a2b591..36ee89e940 100644
--- a/block/file-posix.c
+++ b/block/file-posix.c
@@ -2730,6 +2730,16 @@ static int hdev_create(const char *filename, QemuOpts
*opts,
ret = -ENOSPC;
}
+ if (!ret && total_size) {
+ uint8_t buf[BDRV_SECTOR_SIZE] = { 0 };
+ int64_t zero_size = MIN(BDRV_SECTOR_SIZE, total_size);
+ if (lseek(fd, 0, SEEK_SET) == -1) {
+ ret = -errno;
+ } else {
+ ret = qemu_write_full(fd, buf, zero_size);
+ ret = ret == zero_size ? 0 : -errno;
+ }
+ }
qemu_close(fd);
return ret;
}
--
2.13.5
- [Qemu-block] [PULL 00/24] Block layer patches, Kevin Wolf, 2017/09/26
- [Qemu-block] [PULL 01/24] qemu-iotests: Add missing -machine accel=qtest, Kevin Wolf, 2017/09/26
- [Qemu-block] [PULL 02/24] qemu-img: Clarify about relative backing file options, Kevin Wolf, 2017/09/26
- [Qemu-block] [PULL 03/24] file-posix: Clear out first sector in hdev_create,
Kevin Wolf <=
- [Qemu-block] [PULL 06/24] iotests: use -ccw on s390x for 051, Kevin Wolf, 2017/09/26
- [Qemu-block] [PULL 05/24] iotests: use -ccw on s390x for 040, 139, and 182, Kevin Wolf, 2017/09/26
- [Qemu-block] [PULL 08/24] iotests: Print full path of bad output if mismatch, Kevin Wolf, 2017/09/26
- [Qemu-block] [PULL 04/24] docs: add qemu-block-drivers(7) man page, Kevin Wolf, 2017/09/26
- [Qemu-block] [PULL 07/24] iotests: use virtio aliases for 067, Kevin Wolf, 2017/09/26
- [Qemu-block] [PULL 09/24] throttle: Assert that bkt->max is valid in throttle_compute_wait(), Kevin Wolf, 2017/09/26
- [Qemu-block] [PULL 10/24] block/throttle-groups.c: allocate RestartData on the heap, Kevin Wolf, 2017/09/26
- [Qemu-block] [PULL 13/24] block: Add reopen_queue to bdrv_child_perm(), Kevin Wolf, 2017/09/26