mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-28 21:03:54 -06:00
block: protect tracked_requests and flush_queue with reqs_lock
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20170605123908.18777-14-pbonzini@redhat.com> Signed-off-by: Fam Zheng <famz@redhat.com>
This commit is contained in:
parent
47fec59941
commit
3783fa3dd3
3 changed files with 24 additions and 7 deletions
|
@ -609,11 +609,6 @@ struct BlockDriverState {
|
|||
uint64_t write_threshold_offset;
|
||||
NotifierWithReturn write_threshold_notifier;
|
||||
|
||||
QLIST_HEAD(, BdrvTrackedRequest) tracked_requests;
|
||||
CoQueue flush_queue; /* Serializing flush queue */
|
||||
bool active_flush_req; /* Flush request in flight? */
|
||||
unsigned int flushed_gen; /* Flushed write generation */
|
||||
|
||||
QLIST_HEAD(, BdrvDirtyBitmap) dirty_bitmaps;
|
||||
|
||||
/* Offset after the highest byte written to */
|
||||
|
@ -647,6 +642,15 @@ struct BlockDriverState {
|
|||
/* Accessed with atomic ops. */
|
||||
int quiesce_counter;
|
||||
unsigned int write_gen; /* Current data generation */
|
||||
|
||||
/* Protected by reqs_lock. */
|
||||
CoMutex reqs_lock;
|
||||
QLIST_HEAD(, BdrvTrackedRequest) tracked_requests;
|
||||
CoQueue flush_queue; /* Serializing flush queue */
|
||||
bool active_flush_req; /* Flush request in flight? */
|
||||
|
||||
/* Only read/written by whoever has set active_flush_req to true. */
|
||||
unsigned int flushed_gen; /* Flushed write generation */
|
||||
};
|
||||
|
||||
struct BlockBackendRootState {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue