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>
This commit is contained in:
parent
c9fdcf202f
commit
c6e3f520c8
@ -946,6 +946,7 @@ static void write_help(void)
|
|||||||
" -b, -- write to the VM state rather than the virtual disk\n"
|
" -b, -- write to the VM state rather than the virtual disk\n"
|
||||||
" -c, -- write compressed data with blk_write_compressed\n"
|
" -c, -- write compressed data with blk_write_compressed\n"
|
||||||
" -f, -- use Force Unit Access semantics\n"
|
" -f, -- use Force Unit Access semantics\n"
|
||||||
|
" -n, -- with -z, don't allow slow fallback\n"
|
||||||
" -p, -- ignored for backwards compatibility\n"
|
" -p, -- ignored for backwards compatibility\n"
|
||||||
" -P, -- use different pattern to fill file\n"
|
" -P, -- use different pattern to fill file\n"
|
||||||
" -C, -- report statistics in a machine parsable format\n"
|
" -C, -- report statistics in a machine parsable format\n"
|
||||||
@ -964,7 +965,7 @@ static const cmdinfo_t write_cmd = {
|
|||||||
.perm = BLK_PERM_WRITE,
|
.perm = BLK_PERM_WRITE,
|
||||||
.argmin = 2,
|
.argmin = 2,
|
||||||
.argmax = -1,
|
.argmax = -1,
|
||||||
.args = "[-bcCfquz] [-P pattern] off len",
|
.args = "[-bcCfnquz] [-P pattern] off len",
|
||||||
.oneline = "writes a number of bytes at a specified offset",
|
.oneline = "writes a number of bytes at a specified offset",
|
||||||
.help = write_help,
|
.help = write_help,
|
||||||
};
|
};
|
||||||
@ -983,7 +984,7 @@ static int write_f(BlockBackend *blk, int argc, char **argv)
|
|||||||
int64_t total = 0;
|
int64_t total = 0;
|
||||||
int pattern = 0xcd;
|
int pattern = 0xcd;
|
||||||
|
|
||||||
while ((c = getopt(argc, argv, "bcCfpP:quz")) != -1) {
|
while ((c = getopt(argc, argv, "bcCfnpP:quz")) != -1) {
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case 'b':
|
case 'b':
|
||||||
bflag = true;
|
bflag = true;
|
||||||
@ -997,6 +998,9 @@ static int write_f(BlockBackend *blk, int argc, char **argv)
|
|||||||
case 'f':
|
case 'f':
|
||||||
flags |= BDRV_REQ_FUA;
|
flags |= BDRV_REQ_FUA;
|
||||||
break;
|
break;
|
||||||
|
case 'n':
|
||||||
|
flags |= BDRV_REQ_NO_FALLBACK;
|
||||||
|
break;
|
||||||
case 'p':
|
case 'p':
|
||||||
/* Ignored for backwards compatibility */
|
/* Ignored for backwards compatibility */
|
||||||
break;
|
break;
|
||||||
@ -1037,6 +1041,11 @@ static int write_f(BlockBackend *blk, int argc, char **argv)
|
|||||||
return -EINVAL;
|
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) {
|
if ((flags & BDRV_REQ_MAY_UNMAP) && !zflag) {
|
||||||
printf("-u requires -z to be specified\n");
|
printf("-u requires -z to be specified\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
Loading…
Reference in New Issue
Block a user