{
/* 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);
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);
}
}
- 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);
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;