[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCHv5 04/17] block: add logical block provisioning info
From: |
Peter Lieven |
Subject: |
[Qemu-devel] [PATCHv5 04/17] block: add logical block provisioning info to BlockDriverInfo |
Date: |
Sun, 20 Oct 2013 17:42:58 +0200 |
Signed-off-by: Peter Lieven <address@hidden>
---
include/block/block.h | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/include/block/block.h b/include/block/block.h
index 1f30a56..5fbab01 100644
--- a/include/block/block.h
+++ b/include/block/block.h
@@ -18,6 +18,22 @@ typedef struct BlockDriverInfo {
/* offset at which the VM state can be saved (0 if not possible) */
int64_t vm_state_offset;
bool is_dirty;
+ /*
+ * True if unallocated blocks read back as zeroes. This is equivalent
+ * to the the LBPRZ flag in the SCSI logical block provisioning page.
+ */
+ bool unallocated_blocks_are_zero;
+ /*
+ * True if the driver can optimize writing zeroes by unmapping
+ * sectors. This is equivalent to the BLKDISCARDZEROES ioctl in Linux
+ * with the difference that in qemu a discard is allowed to silently
+ * fail. Therefore we have to use bdrv_write_zeroes with the
+ * BDRV_REQ_MAY_UNMAP flag for an optimized zero write with unmapping.
+ * After this call the driver has to guarantee that the contents read
+ * back as zero. It is additionally required that the block device is
+ * opened with BDRV_O_UNMAP flag for this to work.
+ */
+ bool can_write_zeroes_with_unmap;
} BlockDriverInfo;
typedef struct BlockFragInfo {
--
1.7.9.5
- [Qemu-devel] [PATCHv5 00/17] block: logical block provisioning enhancements, Peter Lieven, 2013/10/20
- [Qemu-devel] [PATCHv5 02/17] block: add flags to bdrv_*_write_zeroes, Peter Lieven, 2013/10/20
- [Qemu-devel] [PATCHv5 01/17] block: make BdrvRequestFlags public, Peter Lieven, 2013/10/20
- [Qemu-devel] [PATCHv5 03/17] block: introduce BDRV_REQ_MAY_UNMAP request flag, Peter Lieven, 2013/10/20
- [Qemu-devel] [PATCHv5 04/17] block: add logical block provisioning info to BlockDriverInfo,
Peter Lieven <=
- [Qemu-devel] [PATCHv5 06/17] block/iscsi: add .bdrv_get_info, Peter Lieven, 2013/10/20
- [Qemu-devel] [PATCHv5 05/17] block: add wrappers for logical block provisioning information, Peter Lieven, 2013/10/20
- [Qemu-devel] [PATCHv5 07/17] block: add BlockLimits structure to BlockDriverState, Peter Lieven, 2013/10/20
- [Qemu-devel] [PATCHv5 09/17] block: honour BlockLimits in bdrv_co_discard, Peter Lieven, 2013/10/20
- [Qemu-devel] [PATCHv5 11/17] iscsi: set limits in BlockDriverState, Peter Lieven, 2013/10/20
- [Qemu-devel] [PATCHv5 08/17] block: honour BlockLimits in bdrv_co_do_write_zeroes, Peter Lieven, 2013/10/20
- [Qemu-devel] [PATCHv5 13/17] block: introduce bdrv_make_zero, Peter Lieven, 2013/10/20
- [Qemu-devel] [PATCHv5 12/17] iscsi: add bdrv_co_write_zeroes, Peter Lieven, 2013/10/20