qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v3 23/23] block: Make device model's references


From: Kevin Wolf
Subject: Re: [Qemu-devel] [PATCH v3 23/23] block: Make device model's references to BlockBackend strong
Date: Tue, 30 Sep 2014 13:01:51 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

Am 16.09.2014 um 20:12 hat Markus Armbruster geschrieben:
> Doesn't make a difference just yet, but it's the right thing to do.
> 
> Signed-off-by: Markus Armbruster <address@hidden>
> ---
>  block/block-backend.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/block/block-backend.c b/block/block-backend.c
> index d49c988..5646628 100644
> --- a/block/block-backend.c
> +++ b/block/block-backend.c
> @@ -253,6 +253,7 @@ int blk_attach_dev(BlockBackend *blk, void *dev)
>      if (blk->dev) {
>          return -EBUSY;
>      }
> +    blk_ref(blk);
>      blk->dev = dev;
>      bdrv_iostatus_reset(blk->bs);
>  
> @@ -281,9 +282,10 @@ void blk_detach_dev(BlockBackend *blk, void *dev)
>  /* TODO change to DeviceState *dev when all users are qdevified */
>  {
>      assert(blk->dev == dev);
> -    blk->dev = NULL;
>      blk->dev_ops = NULL;
>      blk->dev_opaque = NULL;
> +    blk->dev = NULL;

Is the move of blk->dev intentional or a rebase artifact?

> +    blk_unref(blk);
>      bdrv_set_guest_block_size(blk->bs, 512);
>      qemu_coroutine_adjust_pool_size(-COROUTINE_POOL_RESERVATION);
>  }

hw/sd/sd.c calls blk_attach_dev_nofail(), but never detaches the BB
again. The reference count will therefore never become zero. Probably
okay for a device that isn't unpluggable, bdrv_close_all() should still
do everything that is important for a clean shutdown.

Reviewed-by: Kevin Wolf <address@hidden>



reply via email to

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