On Mon, Jun 08, 2015 at 06:21:24PM +0300, Vladimir Sementsov-Ogievskiy wrote:
> @@ -928,8 +936,9 @@ static int qcow2_open(BlockDriverState *bs, QDict
> *options, int flags,
> }
>
> /* Clear unknown autoclear feature bits */
> - if (!bs->read_only && !(flags & BDRV_O_INCOMING) &&
> s->autoclear_features) {
> - s->autoclear_features = 0;
> + if (!bs->read_only && !(flags & BDRV_O_INCOMING) &&
> + (s->autoclear_features & ~QCOW2_AUTOCLEAR_MASK)) {
> + s->autoclear_features |= QCOW2_AUTOCLEAR_MASK;This should be bitwise-and instead of bitwise-or: s->autoclear_features &= QCOW2_AUTOCLEAR_MASK Otherwise we set features that happen to be in QCOW2_AUTOCLEAR_MASK but were not enabled by the user. Right now that's not fatal but if other features are added to QCOW2_AUTOCLEAR_MASK it could introduce a bug, depending on the feature semantics.
pgpmjvoG13RmB.pgp
Description: PGP signature
