From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37798) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZvzbC-0004OC-Tu for qemu-devel@nongnu.org; Mon, 09 Nov 2015 22:28:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZvzbB-0006KD-LB for qemu-devel@nongnu.org; Mon, 09 Nov 2015 22:27:58 -0500 From: Max Reitz Date: Tue, 10 Nov 2015 04:27:41 +0100 Message-Id: <1447126069-6185-1-git-send-email-mreitz@redhat.com> Subject: [Qemu-devel] [PATCH v2 0/8] blockdev: Further BlockBackend work List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-block@nongnu.org Cc: Kevin Wolf , qemu-devel@nongnu.org, Stefan Hajnoczi , Max Reitz Overall, this series adds more uses for BlockBackends and makes the code follow the "reference theory" more closely, in that any BlockBackend created (through -drive or blockdev-add) has a reference count of 1, and that reference should be held by the monitor. This is reflected here by introducing an explicit list of monitor-owned BlockBackends, which in turn allows us to remove bdrv_states, and, perhaps most importantly, blk_hide_on_behalf_of_do_drive_del(). Also, it lays groundwork for a nice series that will make bdrv_open() return a BDS pointer. This series depends on v8 (or any later version) of my series "block: Rework bdrv_close_all()" (or any later version). With v7 you will get a contextual conflict in patch 5 which should be simple to resolve, however. (No, v8 is not yet out, what I am referring to as that is basically v7 with a fix for the following: http://lists.nongnu.org/archive/html/qemu-block/2015-11/msg00330.html) v2: - Mostly a rebase, complicated by the fact that the underlying series have changed a lot in the meantime. Although I don't suppose anyone will care much, here's that backport-diff against v1: Key: [----] : patches are identical [####] : number of functional differences between upstream/downstream patch [down] : patch is downstream-only The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively 001/8:[----] [-C] 'block: Add blk_name_taken()' 002/8:[----] [-C] 'block: Add blk_next_inserted()' 003/8:[----] [-C] 'block: Add blk_commit_all() and blk_invalidate_cache_all()' 004/8:[0073] [FC] 'block: Use BlockBackend more' 005/8:[0004] [FC] 'blockdev: Add list of monitor-owned BlockBackends' 006/8:[down] 'blockdev: Remove blk_hide_on_behalf_of_hmp_drive_del()' (renamed from "..._on_behalf_of_do_drive_del()") 007/8:[0213] [FC] 'block: Move some bdrv_*_all() functions to BB' 008/8:[0027] [FC] 'block: Remove bdrv_states' Max Reitz (8): block: Add blk_name_taken() block: Add blk_next_inserted() block: Add blk_commit_all() and blk_invalidate_cache_all() block: Use BlockBackend more blockdev: Add list of monitor-owned BlockBackends blockdev: Remove blk_hide_on_behalf_of_hmp_drive_del() block: Move some bdrv_*_all() functions to BB block: Remove bdrv_states block.c | 82 ++------------ block/block-backend.c | 245 ++++++++++++++++++++++++++++++++++------- block/io.c | 88 --------------- block/qapi.c | 13 ++- blockdev.c | 29 ++--- cpus.c | 7 +- include/block/block.h | 5 - include/block/block_int.h | 4 - include/sysemu/block-backend.h | 8 +- migration/block.c | 7 +- migration/migration.c | 3 +- migration/savevm.c | 66 ++++++----- monitor.c | 15 ++- qemu-char.c | 3 +- qemu-io.c | 2 +- qmp.c | 9 +- stubs/Makefile.objs | 2 +- stubs/bdrv-commit-all.c | 7 -- stubs/blk-commit-all.c | 7 ++ xen-mapcache.c | 3 +- 20 files changed, 322 insertions(+), 283 deletions(-) delete mode 100644 stubs/bdrv-commit-all.c create mode 100644 stubs/blk-commit-all.c -- 2.6.2