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