diff options
author | Kevin Wolf <kwolf@redhat.com> | 2018-01-18 21:19:38 +0100 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2018-05-15 16:11:50 +0200 |
commit | dee81d5111ff0e24ac63ab0dbbd19e84c2f87904 (patch) | |
tree | d6199ff2f563422fc6b79be2bc718e165113a738 /blockjob.c | |
parent | 18bb69287ea522ab696e1bea818b93e5eaa85745 (diff) |
blockjob: Introduce block_job_ratelimit_get_delay()
This gets us rid of more direct accesses to BlockJob fields from the
job drivers.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Diffstat (limited to 'blockjob.c')
-rw-r--r-- | blockjob.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/blockjob.c b/blockjob.c index 2f4b768338..04416f11cd 100644 --- a/blockjob.c +++ b/blockjob.c @@ -680,6 +680,15 @@ void block_job_set_speed(BlockJob *job, int64_t speed, Error **errp) block_job_enter_cond(job, block_job_timer_pending); } +int64_t block_job_ratelimit_get_delay(BlockJob *job, uint64_t n) +{ + if (!job->speed) { + return 0; + } + + return ratelimit_calculate_delay(&job->limit, n); +} + void block_job_complete(BlockJob *job, Error **errp) { /* Should not be reachable via external interface for internal jobs */ |