From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42441) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XZLvA-0000Qm-LE for qemu-devel@nongnu.org; Wed, 01 Oct 2014 11:34:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XZLv4-00009F-Fg for qemu-devel@nongnu.org; Wed, 01 Oct 2014 11:34:28 -0400 Received: from mx1.redhat.com ([209.132.183.28]:27271) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XZLv4-000094-8s for qemu-devel@nongnu.org; Wed, 01 Oct 2014 11:34:22 -0400 Message-ID: <542C1EF6.6060208@redhat.com> Date: Wed, 01 Oct 2014 17:34:14 +0200 From: Max Reitz MIME-Version: 1.0 References: <1412105144-532-1-git-send-email-armbru@redhat.com> <1412105144-532-4-git-send-email-armbru@redhat.com> In-Reply-To: <1412105144-532-4-git-send-email-armbru@redhat.com> Content-Type: text/plain; charset=iso-8859-15; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v4 03/23] block: Connect BlockBackend to BlockDriverState List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster , qemu-devel@nongnu.org Cc: kwolf@redhat.com, benoit.canet@nodalink.com, stefanha@redhat.com On 30.09.2014 21:25, Markus Armbruster wrote: > Convenience function blk_new_with_bs() creates a BlockBackend with its > BlockDriverState. Callers have to unref both. The commit after next > will relieve them of the need to unref the BlockDriverState. > > Complication: due to the silly way drive_del works, we need a way to > hide a BlockBackend, just like bdrv_make_anon(). To emphasize its > "special" status, give the function a suitably off-putting name: > blk_hide_on_behalf_of_do_drive_del(). Unfortunately, hiding turns the > BlockBackend's name into the empty string. Can't avoid that without > breaking the blk->bs->device_name equals blk->name invariant. > > The patch adds a memory leak: drive_del while a device model is > connected leaks the BlockBackend. Avoiding the leak here is rather > hairy, but it'll become straightforward in a few commits, so I mark it > FIXME in the code now, and plug it when it's easy. > > Signed-off-by: Markus Armbruster > --- > block.c | 12 ++-- > block/block-backend.c | 71 ++++++++++++++++++++++- > blockdev.c | 18 +++--- > hw/block/xen_disk.c | 8 +-- > include/block/block_int.h | 2 + > include/sysemu/block-backend.h | 5 ++ > qemu-img.c | 125 +++++++++++++++++++---------------------- > qemu-io.c | 4 +- > qemu-nbd.c | 4 +- > 9 files changed, 156 insertions(+), 93 deletions(-) Reviewed-by: Max Reitz