From: Yonggang Luo <luoyonggang@gmail.com>
To: qemu-devel@nongnu.org
Cc: "Kevin Wolf" <kwolf@redhat.com>, "Ed Maste" <emaste@freebsd.org>,
"Michael Roth" <mdroth@linux.vnet.ibm.com>,
qemu-block@nongnu.org, "Stefan Weil" <sw@weilnetz.de>,
"Xie Changlong" <xiechanglong.d@gmail.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Markus Armbruster" <armbru@redhat.com>,
"Max Reitz" <mreitz@redhat.com>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Wen Congyang" <wencongyang2@huawei.com>,
"Philippe Mathieu-Daudé" <philmd@redhat.com>,
"Li-Wen Hsu" <lwhsu@freebsd.org>, "Peter Lieven" <pl@kamp.de>
Subject: [PATCH v4 01/24] file-win32: Fix "locking" option
Date: Thu, 10 Sep 2020 00:14:21 +0800 [thread overview]
Message-ID: <20200909161430.1789-2-luoyonggang@gmail.com> (raw)
In-Reply-To: <20200909161430.1789-1-luoyonggang@gmail.com>
From: Kevin Wolf <kwolf@redhat.com>
The intended behaviour was that locking=off/auto work and have no
effect (to remain compatible with file-posix), whereas locking=on would
return an error. Unfortunately, the code forgot to remove "locking" from
the options QDict, so any attempt to use the option would fail.
Replace the option parsing code for "locking" with something that is
part of the raw_runtime_opts QemuOptsList (so it is properly removed
from the QDict) and looks more like file-posix.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20200907092739.9988-1-kwolf@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
block/file-win32.c | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/block/file-win32.c b/block/file-win32.c
index ab69bd811a..e2900c3a51 100644
--- a/block/file-win32.c
+++ b/block/file-win32.c
@@ -299,6 +299,11 @@ static QemuOptsList raw_runtime_opts = {
.type = QEMU_OPT_STRING,
.help = "host AIO implementation (threads, native)",
},
+ {
+ .name = "locking",
+ .type = QEMU_OPT_STRING,
+ .help = "file locking mode (on/off/auto, default: auto)",
+ },
{ /* end of list */ }
},
};
@@ -333,6 +338,7 @@ static int raw_open(BlockDriverState *bs, QDict *options, int flags,
Error *local_err = NULL;
const char *filename;
bool use_aio;
+ OnOffAuto locking;
int ret;
s->type = FTYPE_FILE;
@@ -343,10 +349,24 @@ static int raw_open(BlockDriverState *bs, QDict *options, int flags,
goto fail;
}
- if (qdict_get_try_bool(options, "locking", false)) {
+ locking = qapi_enum_parse(&OnOffAuto_lookup,
+ qemu_opt_get(opts, "locking"),
+ ON_OFF_AUTO_AUTO, &local_err);
+ if (local_err) {
+ error_propagate(errp, local_err);
+ ret = -EINVAL;
+ goto fail;
+ }
+ switch (locking) {
+ case ON_OFF_AUTO_ON:
error_setg(errp, "locking=on is not supported on Windows");
ret = -EINVAL;
goto fail;
+ case ON_OFF_AUTO_OFF:
+ case ON_OFF_AUTO_AUTO:
+ break;
+ default:
+ g_assert_not_reached();
}
filename = qemu_opt_get(opts, "filename");
--
2.28.0.windows.1
next prev parent reply other threads:[~2020-09-09 16:17 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-09 16:14 [PATCH v4 00/24] W32, W64 msys2/mingw patches Yonggang Luo
2020-09-09 16:14 ` Yonggang Luo [this message]
2020-09-09 16:14 ` [PATCH v4 02/24] rcu: Implement drain_call_rcu Yonggang Luo
2020-09-09 16:14 ` [PATCH v4 04/24] ci: fixes msys2 build by upgrading capstone to 4.0.2 Yonggang Luo
2020-09-09 16:14 ` [PATCH v4 05/24] configure: Fixes ncursesw detection under msys2/mingw and enable curses Yonggang Luo
2020-09-09 16:14 ` [PATCH v4 06/24] win32: Simplify gmtime_r detection direct base on _POSIX_THREAD_SAFE_FUNCTIONS Yonggang Luo
2020-09-09 16:14 ` [PATCH v4 15/24] vmstate: Fixes test-vmstate.c on msys2/mingw Yonggang Luo
2020-09-09 16:14 ` [PATCH v4 16/24] cirrus: Building freebsd in a single short Yonggang Luo
2020-09-09 16:14 ` [PATCH v4 20/24] tests: Fixes test-io-channel-file by mask only owner file state mask bits Yonggang Luo
2020-09-09 16:14 ` [PATCH v4 23/24] rcu: fixes test-logging.c by call drain_call_rcu before rmdir_full Yonggang Luo
2020-09-09 16:14 ` [PATCH v4 24/24] ci: Enable msys2 ci in cirrus Yonggang Luo
2020-09-09 16:33 ` Daniel P. Berrangé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200909161430.1789-2-luoyonggang@gmail.com \
--to=luoyonggang@gmail.com \
--cc=armbru@redhat.com \
--cc=emaste@freebsd.org \
--cc=kraxel@redhat.com \
--cc=kwolf@redhat.com \
--cc=lwhsu@freebsd.org \
--cc=mdroth@linux.vnet.ibm.com \
--cc=mreitz@redhat.com \
--cc=philmd@redhat.com \
--cc=pl@kamp.de \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=sw@weilnetz.de \
--cc=wencongyang2@huawei.com \
--cc=xiechanglong.d@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).