qemu-img: add support for rate limit in qemu-img commit
add support for rate limit in qemu-img commit. Signed-off-by: Zhengui <lizhengui@huawei.com> Message-Id: <1603205264-17424-2-git-send-email-lizhengui@huawei.com> Reviewed-by: Alberto Garcia <berto@igalia.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
d55450df99
commit
a0441b66e8
@ -349,7 +349,7 @@ Command description:
|
||||
state after (the attempt at) repairing it. That is, a successful ``-r all``
|
||||
will yield the exit code 0, independently of the image state before.
|
||||
|
||||
.. option:: commit [--object OBJECTDEF] [--image-opts] [-q] [-f FMT] [-t CACHE] [-b BASE] [-d] [-p] FILENAME
|
||||
.. option:: commit [--object OBJECTDEF] [--image-opts] [-q] [-f FMT] [-t CACHE] [-b BASE] [-r RATE_LIMIT] [-d] [-p] FILENAME
|
||||
|
||||
Commit the changes recorded in *FILENAME* in its base image or backing file.
|
||||
If the backing file is smaller than the snapshot, then the backing file will be
|
||||
@ -371,6 +371,8 @@ Command description:
|
||||
garbage data when read. For this reason, ``-b`` implies ``-d`` (so that
|
||||
the top image stays valid).
|
||||
|
||||
The rate limit for the commit process is specified by ``-r``.
|
||||
|
||||
.. option:: compare [--object OBJECTDEF] [--image-opts] [-f FMT] [-F FMT] [-T SRC_CACHE] [-p] [-q] [-s] [-U] FILENAME1 FILENAME2
|
||||
|
||||
Check if two images have the same content. You can compare images with
|
||||
|
@ -34,9 +34,9 @@ SRST
|
||||
ERST
|
||||
|
||||
DEF("commit", img_commit,
|
||||
"commit [--object objectdef] [--image-opts] [-q] [-f fmt] [-t cache] [-b base] [-d] [-p] filename")
|
||||
"commit [--object objectdef] [--image-opts] [-q] [-f fmt] [-t cache] [-b base] [-r rate_limit] [-d] [-p] filename")
|
||||
SRST
|
||||
.. option:: commit [--object OBJECTDEF] [--image-opts] [-q] [-f FMT] [-t CACHE] [-b BASE] [-d] [-p] FILENAME
|
||||
.. option:: commit [--object OBJECTDEF] [--image-opts] [-q] [-f FMT] [-t CACHE] [-b BASE] [-r RATE_LIMIT] [-d] [-p] FILENAME
|
||||
ERST
|
||||
|
||||
DEF("compare", img_compare,
|
||||
|
11
qemu-img.c
11
qemu-img.c
@ -980,6 +980,7 @@ static int img_commit(int argc, char **argv)
|
||||
CommonBlockJobCBInfo cbi;
|
||||
bool image_opts = false;
|
||||
AioContext *aio_context;
|
||||
int64_t rate_limit = 0;
|
||||
|
||||
fmt = NULL;
|
||||
cache = BDRV_DEFAULT_CACHE;
|
||||
@ -991,7 +992,7 @@ static int img_commit(int argc, char **argv)
|
||||
{"image-opts", no_argument, 0, OPTION_IMAGE_OPTS},
|
||||
{0, 0, 0, 0}
|
||||
};
|
||||
c = getopt_long(argc, argv, ":f:ht:b:dpq",
|
||||
c = getopt_long(argc, argv, ":f:ht:b:dpqr:",
|
||||
long_options, NULL);
|
||||
if (c == -1) {
|
||||
break;
|
||||
@ -1026,6 +1027,12 @@ static int img_commit(int argc, char **argv)
|
||||
case 'q':
|
||||
quiet = true;
|
||||
break;
|
||||
case 'r':
|
||||
rate_limit = cvtnum("rate limit", optarg);
|
||||
if (rate_limit < 0) {
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
case OPTION_OBJECT: {
|
||||
QemuOpts *opts;
|
||||
opts = qemu_opts_parse_noisily(&qemu_object_opts,
|
||||
@ -1099,7 +1106,7 @@ static int img_commit(int argc, char **argv)
|
||||
|
||||
aio_context = bdrv_get_aio_context(bs);
|
||||
aio_context_acquire(aio_context);
|
||||
commit_active_start("commit", bs, base_bs, JOB_DEFAULT, 0,
|
||||
commit_active_start("commit", bs, base_bs, JOB_DEFAULT, rate_limit,
|
||||
BLOCKDEV_ON_ERROR_REPORT, NULL, common_block_job_cb,
|
||||
&cbi, false, &local_err);
|
||||
aio_context_release(aio_context);
|
||||
|
Loading…
Reference in New Issue
Block a user