qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Max Reitz <mreitz@redhat.com>
To: qemu-block@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
	qemu-devel@nongnu.org, Max Reitz <mreitz@redhat.com>
Subject: [Qemu-devel] [PATCH 0/8] blockdev: (Nearly) free clean-up work
Date: Tue, 10 Nov 2015 04:44:15 +0100	[thread overview]
Message-ID: <1447127063-4662-1-git-send-email-mreitz@redhat.com> (raw)

After a lot has been restructed in the block layer in the past, we can
now reap at least one of the fruits: Make bdrv_open() return a BDS!

I tried to squeeze patch 8 of this series into my bdrv_close_all()
series but noticed that won't work because bdrv_open_inherit() still has
one instance of bdrv_close() which is actually pretty reasonable.
Therefore, that was impossible there.

However, that instance exists only because bdrv_open_inherit() does not
always create a new BDS but sometimes takes an existing one and opens a
file "into" that BDS, basically. That is ugly and we've tried to get rid
of that for a long time now. Then I noticed that nearly all the callers
of bdrv_open()/bdrv_open_inherit() no longer need that feature, there
was only one show-stopper left: blk_new_open(). That functions creates a
BDS using blk_new_with_bs(), which in turn uses bdrv_new_root() instead
of a plain bdrv_new().

However, the sole difference between bdrv_new_root() and bdrv_new() is
gone as of my "Further BlockBackend work" series, so we can make
blk_new_open() reuse the BDS creation capabilities of bdrv_open() as
well. And that's it!

And with bdv_open_inherit() always creating the BDS, we no longer need
to call bdrv_close() there, which allows us to assert that any BDS given
to bdrv_close() will have a refcount of 0 (i.e. is about to be deleted).


As hinted before, this series depends on v2 of my previous series
"blockdev: Further BlockBackend work".


Max Reitz (8):
  qapi: Drop QERR_UNKNOWN_BLOCK_FORMAT_FEATURE
  block: Drop useless bdrv_new() calls
  block: Let bdrv_open_inherit() return the snapshot
  block: Drop BB name from bad option error
  block: Drop blk_new_with_bs()
  block: Drop bdrv_new_root()
  block: Make bdrv_open() return a BDS
  block: Assert !bs->refcnt in bdrv_close()

 block.c                    | 139 ++++++++++++++++++---------------------------
 block/block-backend.c      |  31 +++-------
 block/parallels.c          |   9 +--
 block/qcow.c               |  15 ++---
 block/qcow2.c              |  53 ++++++-----------
 block/qed.c                |  18 ++----
 block/sheepdog.c           |  16 +++---
 block/vdi.c                |   7 +--
 block/vhdx.c               |   8 +--
 block/vmdk.c               |  31 +++++-----
 block/vpc.c                |   7 +--
 block/vvfat.c              |   9 ++-
 blockdev.c                 |  38 +++++--------
 include/block/block.h      |   6 +-
 include/qapi/qmp/qerror.h  |   3 -
 tests/qemu-iotests/036.out |  16 +++---
 tests/qemu-iotests/051.out |   8 +--
 17 files changed, 153 insertions(+), 261 deletions(-)

-- 
2.6.2

             reply	other threads:[~2015-11-10  3:44 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-10  3:44 Max Reitz [this message]
2015-11-10  3:44 ` [Qemu-devel] [PATCH 1/8] qapi: Drop QERR_UNKNOWN_BLOCK_FORMAT_FEATURE Max Reitz
2015-11-10  3:59   ` Eric Blake
2015-12-01 10:17   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2015-11-10  3:44 ` [Qemu-devel] [PATCH 2/8] block: Drop useless bdrv_new() calls Max Reitz
2015-12-01 10:31   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2015-11-10  3:44 ` [Qemu-devel] [PATCH 3/8] block: Let bdrv_open_inherit() return the snapshot Max Reitz
2015-12-01 14:35   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2015-12-02 17:26     ` Max Reitz
2015-11-10  3:44 ` [Qemu-devel] [PATCH 4/8] block: Drop BB name from bad option error Max Reitz
2015-12-01 10:34   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2015-11-10  3:44 ` [Qemu-devel] [PATCH 5/8] block: Drop blk_new_with_bs() Max Reitz
2015-12-01 11:03   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2015-11-10  3:44 ` [Qemu-devel] [PATCH 6/8] block: Drop bdrv_new_root() Max Reitz
2015-12-01 11:04   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2015-11-10  3:44 ` [Qemu-devel] [PATCH 7/8] block: Make bdrv_open() return a BDS Max Reitz
2015-12-01 14:44   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2015-12-02 17:30     ` Max Reitz
2015-11-10  3:44 ` [Qemu-devel] [PATCH 8/8] block: Assert !bs->refcnt in bdrv_close() Max Reitz
2015-12-01 11:06   ` [Qemu-devel] [Qemu-block] " Alberto Garcia

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1447127063-4662-1-git-send-email-mreitz@redhat.com \
    --to=mreitz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).