Clarify first two cases and fix Modify -> Any access in third case. Also, drop 'only' from third case, as it a bit confuses, when thinking about case where we modify BdrvDirtyBitmap and access HBitmap.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- include/block/block_int.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/include/block/block_int.h b/include/block/block_int.h index c4dd1d4bb8..189666efa5 100644 --- a/include/block/block_int.h +++ b/include/block/block_int.h @@ -709,10 +709,14 @@ struct BlockDriverState { uint64_t write_threshold_offset; NotifierWithReturn write_threshold_notifier; - /* Writing to the list requires the BQL _and_ the dirty_bitmap_mutex. - * Reading from the list can be done with either the BQL or the - * dirty_bitmap_mutex. Modifying a bitmap only requires - * dirty_bitmap_mutex. */ + /* Writing to the list (i.e. to any field of BdrvDirtyBitmap or to the + * list-head) requires both the BQL _and_ the dirty_bitmap_mutex. + * + * Reading from the list (from any field of BdrvDirtyBitmap or from the + * list-head) can be done with either the BQL or the dirty_bitmap_mutex. + * + * Any access to underlying HBitmap requires dirty_bitmap_mutex. + */ QemuMutex dirty_bitmap_mutex; QLIST_HEAD(, BdrvDirtyBitmap) dirty_bitmaps; -- 2.11.1