Commit b6481f37 authored by Max Reitz's avatar Max Reitz Committed by Kevin Wolf
Browse files

qcow2: Save refcount order in BDRVQcowState



Save the image refcount order in BDRVQcowState. This will be relevant
for future code supporting different refcount orders than four and also
for code that needs to verify a certain refcount order for an opened
image.

Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent 32b6444d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -455,6 +455,7 @@ static int qcow2_open(BlockDriverState *bs, QDict *options, int flags)
        ret = -ENOTSUP;
        goto fail;
    }
    s->refcount_order = header.refcount_order;

    if (header.cluster_bits < MIN_CLUSTER_BITS ||
        header.cluster_bits > MAX_CLUSTER_BITS) {
@@ -1143,7 +1144,7 @@ int qcow2_update_header(BlockDriverState *bs)
        .incompatible_features  = cpu_to_be64(s->incompatible_features),
        .compatible_features    = cpu_to_be64(s->compatible_features),
        .autoclear_features     = cpu_to_be64(s->autoclear_features),
        .refcount_order         = cpu_to_be32(3 + REFCOUNT_SHIFT),
        .refcount_order         = cpu_to_be32(s->refcount_order),
        .header_length          = cpu_to_be32(header_length),
    };

+1 −0
Original line number Diff line number Diff line
@@ -199,6 +199,7 @@ typedef struct BDRVQcowState {
    int flags;
    int qcow_version;
    bool use_lazy_refcounts;
    int refcount_order;

    bool discard_passthrough[QCOW2_DISCARD_MAX];