[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for-2.7 07/15] qemu-io: Add "-L" option for BDRV
From: |
Fam Zheng |
Subject: |
Re: [Qemu-devel] [PATCH for-2.7 07/15] qemu-io: Add "-L" option for BDRV_O_NO_LOCK |
Date: |
Thu, 14 Apr 2016 16:15:38 +0800 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Thu, 04/14 10:06, Denis V. Lunev wrote:
> On 04/13/2016 12:09 PM, Fam Zheng wrote:
> >Signed-off-by: Fam Zheng <address@hidden>
> >---
> > qemu-io.c | 22 ++++++++++++++++++++--
> > 1 file changed, 20 insertions(+), 2 deletions(-)
> >
> >diff --git a/qemu-io.c b/qemu-io.c
> >index 288bba8..6bb6232 100644
> >--- a/qemu-io.c
> >+++ b/qemu-io.c
> >@@ -107,6 +107,7 @@ static void open_help(void)
> > " -r, -- open file read-only\n"
> > " -s, -- use snapshot file\n"
> > " -n, -- disable host cache\n"
> >+" -L, -- disable image lock\n"
> > " -o, -- options to be given to the block driver"
> > "\n");
> > }
> >@@ -139,12 +140,13 @@ static int open_f(BlockBackend *blk, int argc, char
> >**argv)
> > {
> > int flags = 0;
> > int readonly = 0;
> >+ int nolock = 0;
> > bool writethrough = true;
> > int c;
> > QemuOpts *qopts;
> > QDict *opts;
> >- while ((c = getopt(argc, argv, "snrgo:")) != -1) {
> >+ while ((c = getopt(argc, argv, "snrgLo:")) != -1) {
> > switch (c) {
> > case 's':
> > flags |= BDRV_O_SNAPSHOT;
> >@@ -156,6 +158,9 @@ static int open_f(BlockBackend *blk, int argc, char
> >**argv)
> > case 'r':
> > readonly = 1;
> > break;
> >+ case 'L':
> >+ nolock = 1;
> >+ break;
> > case 'o':
> > if (imageOpts) {
> > printf("--image-opts and 'open -o' are mutually
> > exclusive\n");
> >@@ -176,6 +181,10 @@ static int open_f(BlockBackend *blk, int argc, char
> >**argv)
> > flags |= BDRV_O_RDWR;
> > }
> >+ if (nolock) {
> >+ flags |= BDRV_O_NO_LOCK;
> >+ }
> >+
> > if (imageOpts && (optind == argc - 1)) {
> > if (!qemu_opts_parse_noisily(&empty_opts, argv[optind], false)) {
> > qemu_opts_reset(&empty_opts);
> >@@ -410,7 +419,8 @@ static QemuOptsList file_opts = {
> > int main(int argc, char **argv)
> > {
> > int readonly = 0;
> >- const char *sopt = "hVc:d:f:rsnmgkt:T:";
> >+ int nolock = 0;
> >+ const char *sopt = "hVc:d:f:rLsnmgkt:T:";
> > const struct option lopt[] = {
> > { "help", no_argument, NULL, 'h' },
> > { "version", no_argument, NULL, 'V' },
> >@@ -418,6 +428,7 @@ int main(int argc, char **argv)
> > { "cmd", required_argument, NULL, 'c' },
> > { "format", required_argument, NULL, 'f' },
> > { "read-only", no_argument, NULL, 'r' },
> >+ { "no-lock", no_argument, NULL, 'L' },
> > { "snapshot", no_argument, NULL, 's' },
> > { "nocache", no_argument, NULL, 'n' },
> > { "misalign", no_argument, NULL, 'm' },
> >@@ -477,6 +488,9 @@ int main(int argc, char **argv)
> > case 'r':
> > readonly = 1;
> > break;
> >+ case 'L':
> >+ nolock = 1;
> >+ break;
> > case 'm':
> > qemuio_misalign = true;
> > break;
> >@@ -558,6 +572,10 @@ int main(int argc, char **argv)
> > flags |= BDRV_O_RDWR;
> > }
> >+ if (nolock) {
> >+ flags |= BDRV_O_NO_LOCK;
> >+ }
> >+
> > if ((argc - optind) == 1) {
> > if (imageOpts) {
> > QemuOpts *qopts = NULL;
> I think that we should do the same for qemu-img.
>
> There are some operations like 'qemu-img info' which
> are widely used to query f.e. block size of the image.
Yes, I can extend this series to add "nolock" option to qemu-img sub commands.
Fam
- [Qemu-devel] [PATCH for-2.7 00/15] block: Lock images when opening, Fam Zheng, 2016/04/13
- [Qemu-devel] [PATCH for-2.7 01/15] block: Add BDRV_O_NO_LOCK, Fam Zheng, 2016/04/13
- [Qemu-devel] [PATCH for-2.7 02/15] qapi: Add lock-image in blockdev-add options, Fam Zheng, 2016/04/13
- [Qemu-devel] [PATCH for-2.7 03/15] blockdev: Add and parse "lock-image" option for block devices, Fam Zheng, 2016/04/13
- [Qemu-devel] [PATCH for-2.7 04/15] block: Introduce image file locking interface, Fam Zheng, 2016/04/13
- [Qemu-devel] [PATCH for-2.7 05/15] raw-posix: Implement .bdrv_lockf, Fam Zheng, 2016/04/13
- [Qemu-devel] [PATCH for-2.7 07/15] qemu-io: Add "-L" option for BDRV_O_NO_LOCK, Fam Zheng, 2016/04/13
- [Qemu-devel] [PATCH for-2.7 06/15] gluster: Implement .bdrv_lockf, Fam Zheng, 2016/04/13
- [Qemu-devel] [PATCH for-2.7 08/15] qemu-iotests: 140: Disable image lock for qemu-io access, Fam Zheng, 2016/04/13
- [Qemu-devel] [PATCH for-2.7 09/15] qemu-iotests: 046: Move version detection out from verify_io, Fam Zheng, 2016/04/13
- [Qemu-devel] [PATCH for-2.7 11/15] qemu-iotests: Disable image lock when checking test image, Fam Zheng, 2016/04/13
- [Qemu-devel] [PATCH for-2.7 10/15] qemu-iotests: Fix lock-image for shared disk in test case 091, Fam Zheng, 2016/04/13
- [Qemu-devel] [PATCH for-2.7 13/15] ahci-test: Specify "lock-image=off" in CLI, Fam Zheng, 2016/04/13
- [Qemu-devel] [PATCH for-2.7 15/15] block: Turn on image locking by default, Fam Zheng, 2016/04/13
- [Qemu-devel] [PATCH for-2.7 12/15] qemu-iotests: 051: Disable image lock in the command line, Fam Zheng, 2016/04/13
- [Qemu-devel] [PATCH for-2.7 14/15] ide-test: Specify "lock-image=off" in command lines, Fam Zheng, 2016/04/13
- Re: [Qemu-devel] [PATCH for-2.7 00/15] block: Lock images when opening, Daniel P. Berrange, 2016/04/13