qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] block: do not allow read-only=on and snapshot=o


From: Jeff Cody
Subject: Re: [Qemu-devel] [PATCH] block: do not allow read-only=on and snapshot=on to be used together
Date: Thu, 16 Jan 2014 14:20:37 -0500
User-agent: Mutt/1.5.21 (2010-09-15)

On Thu, Jan 16, 2014 at 10:39:30AM +0100, Kevin Wolf wrote:
> Am 14.01.2014 um 20:12 hat Jeff Cody geschrieben:
> > Having both read-only=on and snapshot=on together does not make sense;
> > currently, the read-only argument is effectively ignored for the
> > temporary snapshot.  To prevent confusion, disallow the usage of both
> > 'snapshot=on' and 'read-only=on'.
> > 
> > Signed-off-by: Jeff Cody <address@hidden>
> 
> I believe the reason why this was allowed was so that you can use a
> read-only file with -snapshot. It might not be necessary any more since
> I switched -snapshot implementation to modify the options QDict instead
> of manually doing a second bdrv_open().
> 
> Did you test that this still works now?
> 

Yes, that still works.

> The other question is about this code in bdrv_open_flags():
> 
>     /*
>      * Snapshots should be writable.
>      */
>     if (bs->is_temporary) {
>         open_flags |= BDRV_O_RDWR;
>     }
> 
> Is this dead code now because the flag is always already set?
>

Yes, that ends up being dead code.  From later in blockdev_init():

    bdrv_flags |= ro ? 0 : BDRV_O_RDWR;
    
    QINCREF(bs_opts);
    ret = bdrv_open(dinfo->bdrv, file, bs_opts, bdrv_flags, drv, &error);


And ro is set from the read-only QemuOpts, that we check in this
patch in conjunction with snapshot.  So if read-only=on is not
specified, it is opened r/w by default.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]