block: access quiesce_counter with atomic ops
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Alberto Garcia <berto@igalia.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20170605123908.18777-3-pbonzini@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com>
This commit is contained in:
parent
d3faa13e5f
commit
414c2ec358
@ -241,7 +241,7 @@ void bdrv_drained_begin(BlockDriverState *bs)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!bs->quiesce_counter++) {
|
if (atomic_fetch_inc(&bs->quiesce_counter) == 0) {
|
||||||
aio_disable_external(bdrv_get_aio_context(bs));
|
aio_disable_external(bdrv_get_aio_context(bs));
|
||||||
bdrv_parent_drained_begin(bs);
|
bdrv_parent_drained_begin(bs);
|
||||||
}
|
}
|
||||||
@ -252,7 +252,7 @@ void bdrv_drained_begin(BlockDriverState *bs)
|
|||||||
void bdrv_drained_end(BlockDriverState *bs)
|
void bdrv_drained_end(BlockDriverState *bs)
|
||||||
{
|
{
|
||||||
assert(bs->quiesce_counter > 0);
|
assert(bs->quiesce_counter > 0);
|
||||||
if (--bs->quiesce_counter > 0) {
|
if (atomic_fetch_dec(&bs->quiesce_counter) > 1) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -637,6 +637,7 @@ struct BlockDriverState {
|
|||||||
/* do we need to tell the quest if we have a volatile write cache? */
|
/* do we need to tell the quest if we have a volatile write cache? */
|
||||||
int enable_write_cache;
|
int enable_write_cache;
|
||||||
|
|
||||||
|
/* Accessed with atomic ops. */
|
||||||
int quiesce_counter;
|
int quiesce_counter;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user