From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LZqaI-0003rO-Tt for qemu-devel@nongnu.org; Wed, 18 Feb 2009 12:51:46 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LZqaI-0003rC-Dr for qemu-devel@nongnu.org; Wed, 18 Feb 2009 12:51:46 -0500 Received: from [199.232.76.173] (port=35160 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LZqaI-0003r9-8e for qemu-devel@nongnu.org; Wed, 18 Feb 2009 12:51:46 -0500 Received: from mx2.redhat.com ([66.187.237.31]:51602) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LZqaH-00073l-E2 for qemu-devel@nongnu.org; Wed, 18 Feb 2009 12:51:45 -0500 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n1IHpirf011633 for ; Wed, 18 Feb 2009 12:51:44 -0500 From: Uri Lublin Date: Wed, 18 Feb 2009 19:51:39 +0200 Message-Id: <1234979501-9454-1-git-send-email-uril@redhat.com> Subject: [Qemu-devel] [PATCH 0/2] Introducing qcow2 extensions + keep backing file format (v4) Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Uri Lublin This patch set is an implementation of keeping a backing file format, such that we would not need probing to figure it out. I introduce qcow2 extensions which can be used in the future. I use one such an extension to keep the backing file format, and use it when opening a file. Qcow2 extensions are built of magic (id) len (in bytes) and data (len bytes). They reside between the end of the header and the filename. We keep the backing file format in a such a qcow2 extension, to 1. Provide a way to know the backing file format without probing it (setting the format at creation time). 2. Enable using qcow2 format over host block devices. (only if the user specifically asks for it, by providing the format at image creation time). This patchset is backward compatible in two ways: 1. It does not break old images (no extensions -> probe). 2. New images can be opened by old Qemu (extensions skipped -> probe). I've added bdrv_create2 and drv->bdrv_create2 (implemented only by block-qcow2 currently) to pass the backing-format to create. Based on a work done by Shahar Frank. Also fixes a security flaw found by Daniel P. Berrange on [1] which summarizes: "Autoprobing: just say no." [1] http://lists.gnu.org/archive/html/qemu-devel/2008-12/msg01083.html First patch implements qcow2 extensions + bdrv_create2 Second patch modifies qemu-img such that the user can use it. Currently this is implemented only for qcow2. Changes from v3: Rebased to current HEAD. Removed some unneeded comments. Thanks, Uri.