Commit 4f5472cb authored by Stefan Hajnoczi's avatar Stefan Hajnoczi Committed by Kevin Wolf
Browse files

block: replace bdrv_states iteration with bdrv_next()



The bdrv_states list is a static variable in block.c.

bdrv_drain_all() and bdrv_flush_all() use this variable to iterate over
all drives.

The next patch will move bdrv_drain_all() and bdrv_flush_all() out of
block.c so it's necessary to switch to the public bdrv_next() interface.

Reviewed-by: default avatarAlberto Garcia <berto@igalia.com>
Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent 7237aecd
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -2051,9 +2051,9 @@ void bdrv_drain_all(void)
{
    /* Always run first iteration so any pending completion BHs run */
    bool busy = true;
    BlockDriverState *bs;
    BlockDriverState *bs = NULL;

    QTAILQ_FOREACH(bs, &bdrv_states, device_list) {
    while ((bs = bdrv_next(bs))) {
        AioContext *aio_context = bdrv_get_aio_context(bs);

        aio_context_acquire(aio_context);
@@ -2065,8 +2065,9 @@ void bdrv_drain_all(void)

    while (busy) {
        busy = false;
        bs = NULL;

        QTAILQ_FOREACH(bs, &bdrv_states, device_list) {
        while ((bs = bdrv_next(bs))) {
            AioContext *aio_context = bdrv_get_aio_context(bs);

            aio_context_acquire(aio_context);
@@ -2075,7 +2076,8 @@ void bdrv_drain_all(void)
        }
    }

    QTAILQ_FOREACH(bs, &bdrv_states, device_list) {
    bs = NULL;
    while ((bs = bdrv_next(bs))) {
        AioContext *aio_context = bdrv_get_aio_context(bs);

        aio_context_acquire(aio_context);
@@ -4015,10 +4017,10 @@ int bdrv_get_flags(BlockDriverState *bs)

int bdrv_flush_all(void)
{
    BlockDriverState *bs;
    BlockDriverState *bs = NULL;
    int result = 0;

    QTAILQ_FOREACH(bs, &bdrv_states, device_list) {
    while ((bs = bdrv_next(bs))) {
        AioContext *aio_context = bdrv_get_aio_context(bs);
        int ret;