Looking at the version of this that landed in git I don't think the
read-only handling is entirely clean after this.

 - we now normally set the read_only flag from bdrv_open2 when we do
   not have the O_RDWR flag set
 - but the block drivers also mess with it:
        o raw-posix superflously sets it when BDRV_O_RDWR is not in the
          open flags
        o bochs, cloop, dmg and parallels set it unconditionally given
          that they do not support writing at all.  But they do not
          bother to reject opens without BDRV_O_RDWR
        o vvfat as usual is a complete mess setting and clearing it in
          various places
 - in addition to that bdrv_open2 also sets it after calling itself for
   the backing hd which seems superflous
 - there also is a now unused bdrv_set_read_only helper to set it from
   outside block.c


Reply via email to