qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 3/3] block: drop BlockBackendRootState::read_only


From: Kevin Wolf
Subject: Re: [PATCH 3/3] block: drop BlockBackendRootState::read_only
Date: Thu, 27 May 2021 16:46:59 +0200

Am 26.05.2021 um 23:15 hat Vladimir Sementsov-Ogievskiy geschrieben:
> Instead of keeping additional boolean field, let's store the
> information in BDRV_O_RDWR bit of BlockBackendRootState::open_flags.
> 
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

> diff --git a/blockdev.c b/blockdev.c
> index 834c2304a1..c36884c691 100644
> --- a/blockdev.c
> +++ b/blockdev.c
> @@ -576,6 +576,9 @@ static BlockBackend *blockdev_init(const char *file, 
> QDict *bs_opts,
>      }
>  
>      read_only = qemu_opt_get_bool(opts, BDRV_OPT_READ_ONLY, false);
> +    if (!read_only) {
> +        bdrv_flags |= BDRV_O_RDWR;
> +    }
>  
>      /* init */
>      if ((!file || !*file) && !qdict_size(bs_opts)) {
> @@ -584,7 +587,6 @@ static BlockBackend *blockdev_init(const char *file, 
> QDict *bs_opts,
>          blk = blk_new(qemu_get_aio_context(), 0, BLK_PERM_ALL);
>          blk_rs = blk_get_root_state(blk);
>          blk_rs->open_flags    = bdrv_flags;
> -        blk_rs->read_only     = read_only;
>          blk_rs->detect_zeroes = detect_zeroes;
>  
>          qobject_unref(bs_opts);

That we're now using different flags for blk_new_open() looked a bit
suspicious, though the new state intuitively makes more sense than the
old one.

Anyway, this patch breaks ahci-test:

# starting QEMU: exec build/x86_64-softmmu/qemu-system-x86_64 -qtest 
unix:/tmp/qtest-54104.sock -qtest-log /dev/null -chardev 
socket,path=/tmp/qtest-54104.qmp,id=char0 -mon chardev=char0,mode=control 
-display none -drive 
file=/tmp/qtest.mGtxeg,if=none,id=drive0,cache=writeback,rerror=stop,werror=stop,format=raw
 -M q35 -device ide-hd,drive=drive0 -incoming unix:/tmp/qtest-migration.XVRZZi 
-accel qtest
qemu-system-x86_64: -drive 
file=/tmp/qtest.mGtxeg,if=none,id=drive0,cache=writeback,rerror=stop,werror=stop,format=raw:
 Block node is read-only

Kevin




reply via email to

[Prev in Thread] Current Thread [Next in Thread]