Am 09.11.2015 um 16:05 hat Alberto Garcia geschrieben:
> On Wed 04 Nov 2015 07:57:44 PM CET, Max Reitz wrote:
> > @@ -3519,11 +3537,18 @@ void qmp_x_blockdev_del(bool has_id, const char *id,
> >                         bdrv_get_device_or_node_name(bs));
> >              goto out;
> >          }
> > +
> > +        if (!blk && !bs->monitor_list.tqe_prev) {
> > +            error_setg(errp, "Node %s is not owned by the monitor",
> > +                       bs->node_name);
> > +            goto out;
> > +        }
> >      }
> >  
> >      if (blk) {
> >          blk_unref(blk);
> >      } else {
> > +        QTAILQ_REMOVE(&monitor_bdrv_states, bs, monitor_list);
> >          bdrv_unref(bs);
> >      }
> 
> blk_unref(blk) will also unref the BDS (if there's any), so you also
> need to update monitor_bdrv_states in that case, don't you?

No, in that case the BDS referenced wasn't owned by the monitor in the
first place. It was owned by the BB.

Kevin

Reply via email to