qemu-block
[Top][All Lists]
Advanced

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

Re: [Qemu-block] [PATCH v5 18/27] mirror: Disable image locking on targe


From: Fam Zheng
Subject: Re: [Qemu-block] [PATCH v5 18/27] mirror: Disable image locking on target backing chain
Date: Fri, 3 Jun 2016 14:32:50 +0800
User-agent: Mutt/1.6.1 (2016-04-27)

On Tue, 05/24 20:20, Max Reitz wrote:
> On 17.05.2016 09:35, Fam Zheng wrote:
> > In sync=none the backing image of s->target is s->common.bs, which could
> > be exclusively locked, the image locking wouldn't work here.
> 
> Why is the backing image s->common.bs when the bdrv_open() call
> explicitly specifies BDRV_O_NO_BACKING?

BDRV_O_NO_BACKING is cleared in mirror_complete where the backing image is
opened, we cannot use lock there as the backing is already open rw as source.

Fam

> 
> Max
> 
> > Later we can update completion code to lock it after the replaced node
> > has dropped its lock.
> > 
> > Signed-off-by: Fam Zheng <address@hidden>
> > ---
> >  blockdev.c | 6 ++++++
> >  1 file changed, 6 insertions(+)
> > 
> > diff --git a/blockdev.c b/blockdev.c
> > index 250e3d2..3de54f0 100644
> > --- a/blockdev.c
> > +++ b/blockdev.c
> > @@ -3626,6 +3626,12 @@ void qmp_drive_mirror(const char *device, const char 
> > *target,
> >       * file.
> >       */
> >      target_bs = NULL;
> > +    if (sync == MIRROR_SYNC_MODE_NONE) {
> > +        flags |= BDRV_O_NO_LOCK;
> > +    }
> > +    /* TODO: in mirror complete, after target_bs is switched to and the
> > +     * original BDS's lock is dropped, we should enable the lock on 
> > target_bs.
> > +     * */
> >      ret = bdrv_open(&target_bs, target, NULL, options,
> >                      flags | BDRV_O_NO_BACKING, &local_err);
> >      if (ret < 0) {
> > 
> 
> 






reply via email to

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