The current way to obtain the list of existing block jobs is to
iterate over all root nodes and check which ones own a job.
Since we want to be able to support block jobs in other nodes as well,
this patch keeps a list of jobs that is updated every time one is
created or destroyed.
This also updates qmp_query_block_jobs() and bdrv_drain_all() to use
this new list.
Signed-off-by: Alberto Garcia <address@hidden>
Cc: Max Reitz <address@hidden>
Cc: Eric Blake <address@hidden>
Cc: Alexander Yarygin <address@hidden>
---
block/io.c | 22 +++++++++++-----------
blockdev.c | 19 ++++++++-----------
blockjob.c | 13 +++++++++++++
include/block/blockjob.h | 14 ++++++++++++++
4 files changed, 46 insertions(+), 22 deletions(-)