From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LUkJF-0001vg-Hl for qemu-devel@nongnu.org; Wed, 04 Feb 2009 11:09:05 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LUkJE-0001tI-Gw for qemu-devel@nongnu.org; Wed, 04 Feb 2009 11:09:04 -0500 Received: from [199.232.76.173] (port=40931 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LUkJE-0001sa-5P for qemu-devel@nongnu.org; Wed, 04 Feb 2009 11:09:04 -0500 Received: from mx2.redhat.com ([66.187.237.31]:39971) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LUkJD-0005WU-M4 for qemu-devel@nongnu.org; Wed, 04 Feb 2009 11:09:03 -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 n14G93qo015361 for ; Wed, 4 Feb 2009 11:09:03 -0500 From: Uri Lublin Date: Wed, 4 Feb 2009 18:08:57 +0200 Message-Id: <1233763739-23230-2-git-send-email-uril@redhat.com> In-Reply-To: <1233763739-23230-1-git-send-email-uril@redhat.com> References: <1233763739-23230-1-git-send-email-uril@redhat.com> Subject: [Qemu-devel] [PATCH For Review 0/2] qemu block changes: keep backing file format v3 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 is another implementation for keeping a backing file format, such that we would not need probing to figure it out. This time I introduce qcow2 extensions which can be used in the future. I assing one such an extension to keeping the backing file format, and use it when opening a file. Qcow2 extensions are build of magic (id) len (in bytes) and data. 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 creation time). 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 Currently this is implemented only for qcow2, but touches code in some block*.[ch] files. An alternative that touches only block-qcow2.c is possible, but will need to change the implementation of -snapshot, and call bdrv_open2 directly from qcow_open. Please review, Thanks, Uri.