@@ -55,3 +55,4 @@ the operation of that feature.
NBD_CMD_BLOCK_STATUS for "qemu:dirty-bitmap:", NBD_CMD_CACHE
* 4.2: NBD_FLAG_CAN_MULTI_CONN for sharable read-only exports,
NBD_CMD_FLAG_FAST_ZERO
+* 5.0: NBD_INFO_INIT_STATE
@@ -200,6 +200,15 @@ enum {
#define NBD_INFO_NAME 1
#define NBD_INFO_DESCRIPTION 2
#define NBD_INFO_BLOCK_SIZE 3
+#define NBD_INFO_INIT_STATE 4
+
+/* Initial state bits, when replying to NBD_INFO_INIT_STATE */
+enum {
+ NBD_INIT_SPARSE_BIT = 0,
+ NBD_INIT_ZERO_BIT = 1,
+};
+#define NBD_INIT_SPARSE (1 << NBD_INIT_SPARSE_BIT)
+#define NBD_INIT_ZERO (1 << NBD_INIT_ZERO_BIT)
/* Request flags, sent from client to server during transmission phase */
#define NBD_CMD_FLAG_FUA (1 << 0) /* 'force unit access' during write */
@@ -129,6 +129,8 @@ const char *nbd_info_lookup(uint16_t info)
return "description";
case NBD_INFO_BLOCK_SIZE:
return "block size";
+ case NBD_INFO_INIT_STATE:
+ return "init state";
default:
return "<unknown>";
}
Declare the constants being proposed for an NBD extension, which will let qemu advertise/learn if an image began life with all zeroes. Signed-off-by: Eric Blake <eblake@redhat.com> --- docs/interop/nbd.txt | 1 + include/block/nbd.h | 9 +++++++++ nbd/common.c | 2 ++ 3 files changed, 12 insertions(+)