Message ID | 20180416114414.18406-3-vsementsov@virtuozzo.com |
---|---|
State | New |
Headers | show |
Series | Dirty bitmaps fixing and refactoring | expand |
On 04/16/2018 07:44 AM, Vladimir Sementsov-Ogievskiy wrote: > 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 <vsementsov@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. "to the underlying HBitmap," probably. > + */ > QemuMutex dirty_bitmap_mutex; > QLIST_HEAD(, BdrvDirtyBitmap) dirty_bitmaps; > > Reviewed-by: John Snow <jsnow@redhat.com>
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;
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 <vsementsov@virtuozzo.com> --- include/block/block_int.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)