From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53481) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zn0q1-0007tC-C6 for qemu-devel@nongnu.org; Fri, 16 Oct 2015 04:58:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zn0py-0002qm-23 for qemu-devel@nongnu.org; Fri, 16 Oct 2015 04:58:09 -0400 From: Wen Congyang Date: Fri, 16 Oct 2015 16:57:42 +0800 Message-ID: <1444985866-12969-1-git-send-email-wency@cn.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain Subject: [Qemu-devel] [PATCH v6 0/4] qapi: child add/delete support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu devel , Eric Blake , Markus Armbruster , Alberto Garcia , Kevin Wolf , Stefan Hajnoczi Cc: qemu block , Jiang Yunhong , Dong Eddie , "Dr. David Alan Gilbert" , Yang Hongyang If quorum's child is broken, we can use mirror job to replace it. But sometimes, the user only need to remove the broken child, and add it later when the problem is fixed. It is based on the Kevin's bdrv_swap() related patch: http://lists.nongnu.org/archive/html/qemu-devel/2015-10/msg02152.html ChangLog: v6: 1. Use a single qmp command x-blockdev-change to replace x-blockdev-child-add and x-blockdev-child-delete v5: 1. Address Eric Blake's comments v4: 1. drop nbd driver's implementation. We can use human-monitor-command to do it. 2. Rename the command name. v3: 1. Don't open BDS in bdrv_add_child(). Use the existing BDS which is created by the QMP command blockdev-add. 2. The driver NBD can support filename, path, host:port now. v2: 1. Use bdrv_get_device_or_node_name() instead of new function bdrv_get_id_or_node_name() 2. Update the error message 3. Update the documents in block-core.json Wen Congyang (4): Add new block driver interface to add/delete a BDS's child quorum: implement bdrv_add_child() and bdrv_del_child() qmp: add monitor command to add/remove a child hmp: add monitor command to add/remove a child block.c | 56 ++++++++++++++++++++++++++++++++-- block/quorum.c | 59 ++++++++++++++++++++++++++++++++++-- blockdev.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++ hmp-commands.hx | 17 +++++++++++ hmp.c | 38 ++++++++++++++++++++++++ hmp.h | 1 + include/block/block.h | 8 +++++ include/block/block_int.h | 5 ++++ qapi/block-core.json | 40 +++++++++++++++++++++++++ qmp-commands.hx | 50 +++++++++++++++++++++++++++++++ 10 files changed, 345 insertions(+), 5 deletions(-) -- 2.4.3