From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59599) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YcVBv-0007hW-J8 for qemu-devel@nongnu.org; Mon, 30 Mar 2015 04:37:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YcVBs-0004EJ-Bb for qemu-devel@nongnu.org; Mon, 30 Mar 2015 04:37:03 -0400 Received: from mail-pd0-x233.google.com ([2607:f8b0:400e:c02::233]:36845) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YcVBs-0004EC-3v for qemu-devel@nongnu.org; Mon, 30 Mar 2015 04:37:00 -0400 Received: by pdcp1 with SMTP id p1so77260773pdc.3 for ; Mon, 30 Mar 2015 01:36:58 -0700 (PDT) Sender: Lin Ma From: Lin Ma Date: Mon, 30 Mar 2015 16:36:27 +0800 Message-Id: <1427704589-7688-1-git-send-email-lma@suse.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [Qemu-devel] [PATCH v6 0/2] Add generic can_be_deleted to UserCreatableClass. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: imammedo@redhat.com, afaerber@suse.de, peter.crosthwaite@xilinx.com, pbonzini@redhat.com Cc: qemu-devel@nongnu.org, Lin Ma The patchset adds a generic can_be_deleted callback to UserCreatableClass. It prevents removing a usercreatable object if the callback returns false. Backends could implement the callback if it shoudn't be removed while it's in use. Thank Peter Crosthwaite, Paolo Bonzini, Andreas Färber and Igor Mammedov for helping review. ChangeLog: V6: Change prototype of user_creatable_can_be_deleted. from bool user_creatable_can_be_deleted(Object *obj, Error **errp) to bool user_creatable_can_be_deleted(UserCreatable *uc, Error **errp) V5: Use specific caster instead of dynamic cast in user_creatable_can_be_deleted. V4: Add function user_creatable_can_be_deleted to wrapper can_be_deleted method. Remove some unnecessary code. V3: Move the callback to the correct place: UserCreatableClass. Move the backend callback implementation to hostmem.c. V2: Make it generic, add the can_be_deleted callback to TypeInfo and TypeImpl. Implement the callback in hostmem-file.c and hostmem-ram.c. V1: Initial version, hard coded in object_del to prevent removing an in-use host memory backend. Lin Ma (2): qom: Add can_be_deleted callback to UserCreatableClass hostmem: Prevent removing an in-use memory backend backends/hostmem.c | 14 ++++++++++++++ include/qom/object_interfaces.h | 13 +++++++++++++ qmp.c | 5 +++++ qom/object_interfaces.c | 12 ++++++++++++ 4 files changed, 44 insertions(+) -- 2.1.4