[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 04/41] block: add logical block provisioning info to
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PULL 04/41] block: add logical block provisioning info to BlockDriverInfo |
Date: |
Fri, 29 Nov 2013 17:45:19 +0100 |
From: Peter Lieven <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Peter Lieven <address@hidden>
Signed-off-by: Stefan Hajnoczi <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..9c76967 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.8.1.4
- [Qemu-devel] [PULL 00/41] Block patches for 2.0 (flushing block-next), Kevin Wolf, 2013/11/29
- [Qemu-devel] [PULL 04/41] block: add logical block provisioning info to BlockDriverInfo,
Kevin Wolf <=
- [Qemu-devel] [PULL 02/41] block: add flags to bdrv_*_write_zeroes, Kevin Wolf, 2013/11/29
- [Qemu-devel] [PULL 01/41] block: make BdrvRequestFlags public, Kevin Wolf, 2013/11/29
- [Qemu-devel] [PULL 03/41] block: introduce BDRV_REQ_MAY_UNMAP request flag, Kevin Wolf, 2013/11/29
- [Qemu-devel] [PULL 07/41] block: add BlockLimits structure to BlockDriverState, Kevin Wolf, 2013/11/29
- [Qemu-devel] [PULL 06/41] block/iscsi: add .bdrv_get_info, Kevin Wolf, 2013/11/29
- [Qemu-devel] [PULL 05/41] block: add wrappers for logical block provisioning information, Kevin Wolf, 2013/11/29
- [Qemu-devel] [PULL 08/41] block/raw: copy BlockLimits on raw_open, Kevin Wolf, 2013/11/29
- [Qemu-devel] [PULL 09/41] block: honour BlockLimits in bdrv_co_do_write_zeroes, Kevin Wolf, 2013/11/29
- [Qemu-devel] [PULL 10/41] block: honour BlockLimits in bdrv_co_discard, Kevin Wolf, 2013/11/29
- [Qemu-devel] [PULL 11/41] iscsi: set limits in BlockDriverState, Kevin Wolf, 2013/11/29