From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45894) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VC5oh-0000QD-J3 for qemu-devel@nongnu.org; Wed, 21 Aug 2013 06:39:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VC5oc-0002kx-8C for qemu-devel@nongnu.org; Wed, 21 Aug 2013 06:39:07 -0400 Received: from mx1.redhat.com ([209.132.183.28]:25299) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VC5ob-0002kk-W0 for qemu-devel@nongnu.org; Wed, 21 Aug 2013 06:39:02 -0400 From: Laszlo Ersek Date: Wed, 21 Aug 2013 12:41:16 +0200 Message-Id: <1377081683-1600-1-git-send-email-lersek@redhat.com> Subject: [Qemu-devel] [PATCH v2 0/7] introduce BSD-licensed block driver for "raw" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: kwolf@redhat.com, stefanha@redhat.com, pbonzini@redhat.com, hch@lst.de, anthony@codemonkey.ws, qemu-devel@nongnu.org v1->v2: - added comment to raw_probe() [Kevin] - fixed raw_reopen_prepare() [Paolo & Kevin] - keeping BSDL: according to the v1 discussion, LGPLv2+ could work too, but "but most of the block layer is BSD" [Paolo] and I haven't been clearly instructed to switch to LGPLv2+. diff --git a/block/raw_bsd.c b/block/raw_bsd.c index 07e6f06..ab2b0fd 100644 --- a/block/raw_bsd.c +++ b/block/raw_bsd.c @@ -41,10 +41,7 @@ static QEMUOptionParameter raw_create_options[] = { static int raw_reopen_prepare(BDRVReopenState *reopen_state, BlockReopenQueue *queue, Error **errp) { - BDRVReopenState tmp = *reopen_state; - - tmp.bs = tmp.bs->file; - return bdrv_reopen_prepare(&tmp, queue, errp); + return 0; } static int coroutine_fn raw_co_readv(BlockDriverState *bs, int64_t sector_num, @@ -150,6 +147,9 @@ static void raw_close(BlockDriverState *bs) static int raw_probe(const uint8_t *buf, int buf_size, const char *filename) { + /* smallest possible positive score so that raw is used if and only if no + * other block driver works + */ return 1; } v1 blurb: Paolo asked me to write such a driver based on his textual specification alone. The first patch captures his email in full, the rest re-quotes parts that are being implemented. The tree compiles at each patch. The series passes "make check-block". "block/raw.c" is not removed because I wanted to keep it out of my series and out of my brain. Laszlo Ersek (7): add skeleton for BSD licensed "raw" BlockDriver raw_bsd: emit debug events in bdrv_co_readv() and bdrv_co_writev() raw_bsd: add raw_create() raw_bsd: introduce "special members" raw_bsd: add raw_create_options raw_bsd: register bdrv_raw switch raw block driver from "raw.o" to "raw_bsd.o" block/Makefile.objs | 2 +- block/raw_bsd.c | 186 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 187 insertions(+), 1 deletions(-) create mode 100644 block/raw_bsd.c