qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v13 03/14] block: Replace in_use with operation


From: Fam Zheng
Subject: Re: [Qemu-devel] [PATCH v13 03/14] block: Replace in_use with operation blocker
Date: Mon, 17 Feb 2014 21:21:24 +0800
User-agent: Mutt/1.5.22 (2013-10-16)

On Thu, 02/13 13:34, Benoît Canet wrote:
> The Wednesday 29 Jan 2014 à 13:07:30 (+0800), Fam Zheng wrote :
> > @@ -368,6 +371,7 @@ void virtio_blk_data_plane_create(VirtIODevice *vdev, 
> > VirtIOBlkConf *blk,
> >  {
> >      VirtIOBlockDataPlane *s;
> >      int fd;
> > +    Error *local_err = NULL;
> >  
> >      *dataplane = NULL;
> >  
> > @@ -390,9 +394,10 @@ void virtio_blk_data_plane_create(VirtIODevice *vdev, 
> > VirtIOBlkConf *blk,
> >      /* If dataplane is (re-)enabled while the guest is running there could 
> > be
> >       * block jobs that can conflict.
> >       */
> > -    if (bdrv_in_use(blk->conf.bs)) {
> > -        error_setg(errp,
> > -                   "cannot start dataplane thread while device is in use");
> > +    if (bdrv_op_is_blocked(blk->conf.bs, BLOCK_OP_TYPE_DATAPLANE, 
> > &local_err)) {
> > +        error_report("cannot start dataplane thread: %s",
> > +                      error_get_pretty(local_err));
> > +        error_free(local_err);
> >          return;
> >      }
> >  
> > @@ -407,9 +412,8 @@ void virtio_blk_data_plane_create(VirtIODevice *vdev, 
> > VirtIOBlkConf *blk,
> >      s->vdev = vdev;
> >      s->fd = fd;
> >      s->blk = blk;
> > -
> > -    /* Prevent block operations that conflict with data plane thread */
> The comment was not really an extra.
> 

But the code is even more self-explanatory now :)

Fam

> > -    bdrv_set_in_use(blk->conf.bs, 1);
> > +    error_setg(&s->blocker, "block device is in use by data plane");
> > +    bdrv_op_block_all(blk->conf.bs, s->blocker);
> >  
> >      *dataplane = s;
> >  }



reply via email to

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