[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v7 11/19] block: vhdx write support
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH v7 11/19] block: vhdx write support |
Date: |
Fri, 18 Oct 2013 14:12:08 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Fri, Oct 11, 2013 at 02:17:31PM -0400, Jeff Cody wrote:
> + case PAYLOAD_BLOCK_FULLY_PRESENT:
> + /* if the file offset address is in the header zone,
> + * there is a problem */
> + if (sinfo.file_offset < (1024 * 1024)) {
When a block is allocated we update s->bat[] and changed the file size.
This should be undone so that in-memory and on-disk metadata doesn't get
out of sync.
> + ret = -EFAULT;
> + goto exit;
> + }
> +
> + if (!use_zero_buffers) {
> + qemu_iovec_concat(&hd_qiov, qiov, bytes_done,
> + sinfo.bytes_avail);
> + }
> + /* block exists, so we can just overwrite it */
> + qemu_co_mutex_unlock(&s->lock);
> + ret = bdrv_co_writev(bs->file,
> + sinfo.file_offset >> BDRV_SECTOR_BITS,
> + sectors_to_write, &hd_qiov);
> + qemu_co_mutex_lock(&s->lock);
> + if (ret < 0) {
> + goto exit;
Same comment about in-memory and on-disk metadata getting out of sync in
the error case.
> +exit:
> + qemu_vfree(iov1.iov_base);
> + qemu_vfree(iov2.iov_base);
> + qemu_co_mutex_unlock(&s->lock);
> + return ret;
Missing qemu_iovec_destroy(&hd_qiov).
- [Qemu-devel] [PATCH v7 05/19] block: vhdx - break endian translation functions out, (continued)
- [Qemu-devel] [PATCH v7 05/19] block: vhdx - break endian translation functions out, Jeff Cody, 2013/10/11
- [Qemu-devel] [PATCH v7 07/19] block: vhdx code movement - move vhdx_close() above vhdx_open(), Jeff Cody, 2013/10/11
- [Qemu-devel] [PATCH v7 06/19] block: vhdx - update log guid in header, and first write tracker, Jeff Cody, 2013/10/11
- [Qemu-devel] [PATCH v7 08/19] block: vhdx - log parsing, replay, and flush support, Jeff Cody, 2013/10/11
- [Qemu-devel] [PATCH v7 09/19] block: vhdx - add region overlap detection for image files, Jeff Cody, 2013/10/11
- [Qemu-devel] [PATCH v7 10/19] block: vhdx - add log write support, Jeff Cody, 2013/10/11
- [Qemu-devel] [PATCH v7 11/19] block: vhdx write support, Jeff Cody, 2013/10/11
- [Qemu-devel] [PATCH v7 12/19] block: vhdx - remove BAT file offset bit shifting, Jeff Cody, 2013/10/11
- [Qemu-devel] [PATCH v7 13/19] block: vhdx - move more endian translations to vhdx-endian.c, Jeff Cody, 2013/10/11
- [Qemu-devel] [PATCH v7 14/19] block: vhdx - break out code operations to functions, Jeff Cody, 2013/10/11
- [Qemu-devel] [PATCH v7 15/19] block: vhdx - fix comment typos in header, fix incorrect struct fields, Jeff Cody, 2013/10/11
- [Qemu-devel] [PATCH v7 16/19] block: vhdx - add .bdrv_create() support, Jeff Cody, 2013/10/11
- [Qemu-devel] [PATCH v7 17/19] block: vhdx - update _make_test_img() to filter out vhdx options, Jeff Cody, 2013/10/11
- [Qemu-devel] [PATCH v7 18/19] block: qemu-iotests for vhdx, add write test support, Jeff Cody, 2013/10/11
- [Qemu-devel] [PATCH v7 19/19] block: vhdx qemu-iotest - log replay of data sector, Jeff Cody, 2013/10/11