[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) {
> >
>
>
- Re: [Qemu-block] [PATCH v5 18/27] mirror: Disable image locking on target backing chain,
Fam Zheng <=