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