From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54956) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vfu09-00022O-5c for qemu-devel@nongnu.org; Mon, 11 Nov 2013 11:06:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Vfu01-000697-Pn for qemu-devel@nongnu.org; Mon, 11 Nov 2013 11:06:09 -0500 Received: from mx1.redhat.com ([209.132.183.28]:50982) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vfu01-00068u-HX for qemu-devel@nongnu.org; Mon, 11 Nov 2013 11:06:01 -0500 Date: Mon, 11 Nov 2013 17:05:55 +0100 From: Kevin Wolf Message-ID: <20131111160555.GH3046@dhcp-200-207.str.redhat.com> References: <1383763845-30340-1-git-send-email-mreitz@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1383763845-30340-1-git-send-email-mreitz@redhat.com> Subject: Re: [Qemu-devel] [PATCH v3 0/2] block/drive-mirror: Check for NULL backing_hd List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Max Reitz Cc: Paolo Bonzini , Fam Zheng , qemu-devel@nongnu.org, Stefan Hajnoczi , Wenchao Xia Am 06.11.2013 um 19:50 hat Max Reitz geschrieben: > It should be possible to execute the QMP "drive-mirror" command in > "none" sync mode and "absolute-paths" mode even for block devices > lacking a backing file. > > "absolute-paths" does in fact not require a backing file to be present, > as can be seen from the "top" sync mode code path. "top" basically > states that the device should indeed have a backing file - however, the > current code catches the case if it doesn't and then simply treats it as > "full" sync mode, creating a target image without a backing file (in > "absolute-paths" mode). Thus, "absolute-paths" does not imply the target > file must indeed have a backing file. > > Therefore, the target file may be left unbacked in case of "none" sync > mode as well, if the specified device is not backed either. Currently, > qemu will crash trying to dereference the backing file pointer since it > assumes that it will always be non-NULL in that case ("none" with > "absolute-paths"). > > The first patch in this series adds a check whether the specified block > device is backed or not (creating an unbacked target image, if required); > the second patch adds a test case for mirroring unbacked block devices. > > v2: > - patch 1: Reuse an already existing codepath to create an unbacked > target image instead of introducing a new one (based on > Fam's comment). > - patch 2: Incorporated test case into 041 instead of creating a new > file (according to Xia's and Paolo's comments). > > > Max Reitz (2): > block/drive-mirror: Check for NULL backing_hd > qemu-iotests: Extend 041 for unbacked mirroring > > blockdev.c | 4 +++- > tests/qemu-iotests/041 | 25 +++++++++++++++++++++++++ > tests/qemu-iotests/041.out | 4 ++-- > 3 files changed, 30 insertions(+), 3 deletions(-) Thanks, applied to the block branch. Kevin