diff options
author | Kevin Wolf <kwolf@redhat.com> | 2019-03-22 13:53:03 +0100 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2019-03-26 11:37:51 +0100 |
commit | c6e3f520c802c5cb2de80576aba7f9f1fe985d8b (patch) | |
tree | e0eb9617785eb3ee5cb9179e2b01675426dc1146 | |
parent | c9fdcf202f19fc2acdcb1ee0522ff5d61bf8c906 (diff) | |
download | qemu-c6e3f520c802c5cb2de80576aba7f9f1fe985d8b.zip qemu-c6e3f520c802c5cb2de80576aba7f9f1fe985d8b.tar.gz qemu-c6e3f520c802c5cb2de80576aba7f9f1fe985d8b.tar.bz2 |
qemu-io: Add write -n for BDRV_REQ_NO_FALLBACK
This makes the new BDRV_REQ_NO_FALLBACK flag available in the qemu-io
write command.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Eric Blake <eblake@redhat.com>
-rw-r--r-- | qemu-io-cmds.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/qemu-io-cmds.c b/qemu-io-cmds.c index 35dcdcf..09750a2 100644 --- a/qemu-io-cmds.c +++ b/qemu-io-cmds.c @@ -946,6 +946,7 @@ static void write_help(void) " -b, -- write to the VM state rather than the virtual disk\n" " -c, -- write compressed data with blk_write_compressed\n" " -f, -- use Force Unit Access semantics\n" +" -n, -- with -z, don't allow slow fallback\n" " -p, -- ignored for backwards compatibility\n" " -P, -- use different pattern to fill file\n" " -C, -- report statistics in a machine parsable format\n" @@ -964,7 +965,7 @@ static const cmdinfo_t write_cmd = { .perm = BLK_PERM_WRITE, .argmin = 2, .argmax = -1, - .args = "[-bcCfquz] [-P pattern] off len", + .args = "[-bcCfnquz] [-P pattern] off len", .oneline = "writes a number of bytes at a specified offset", .help = write_help, }; @@ -983,7 +984,7 @@ static int write_f(BlockBackend *blk, int argc, char **argv) int64_t total = 0; int pattern = 0xcd; - while ((c = getopt(argc, argv, "bcCfpP:quz")) != -1) { + while ((c = getopt(argc, argv, "bcCfnpP:quz")) != -1) { switch (c) { case 'b': bflag = true; @@ -997,6 +998,9 @@ static int write_f(BlockBackend *blk, int argc, char **argv) case 'f': flags |= BDRV_REQ_FUA; break; + case 'n': + flags |= BDRV_REQ_NO_FALLBACK; + break; case 'p': /* Ignored for backwards compatibility */ break; @@ -1037,6 +1041,11 @@ static int write_f(BlockBackend *blk, int argc, char **argv) return -EINVAL; } + if ((flags & BDRV_REQ_NO_FALLBACK) && !zflag) { + printf("-n requires -z to be specified\n"); + return -EINVAL; + } + if ((flags & BDRV_REQ_MAY_UNMAP) && !zflag) { printf("-u requires -z to be specified\n"); return -EINVAL; |