On Wed 14 Sep 2016 06:40:29 PM CEST, Kevin Wolf wrote:
>> + if (flags & BDRV_O_RDWR) {
>> + flags |= BDRV_O_ALLOW_RDWR;
>> + }
>> +
>> + if (flags & BDRV_O_SNAPSHOT) {
>> + snapshot_options = qdict_new();
>> + bdrv_temp_snapshot_options(&snapshot_flags, snapshot_options,
>> + flags, options);
>> + bdrv_backing_options(&flags, options, flags, options);
>> + }
>> +
>> bs->open_flags = flags;
>> bs->options = options;
>> options = qdict_clone_shallow(options);
>
> Here I think we get different semantics now: bdrv_backing_options()
> only affected the cloned QDict before, and now it affects bs->options,
> too.
The thing is that bdrv_backing_options() doesn't change the options in
general, and in the case where it does (BDRV_OPT_READ_ONLY after the
next patch) I think it makes sense that the options are changed.
"snapshot=on" is a bit of a special case after all.
Berto