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