mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-30 13:53:54 -06:00
block: Make overlap range for serialisation dynamic
Copy on Read wants to serialise with all requests touching the same cluster, so wait_serialising_requests() rounded to cluster boundaries. Other users like alignment RMW will have different requirements, though (requests touching the same sector), so make it dynamic. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Benoit Canet <benoit@irqsave.net>
This commit is contained in:
parent
2dbafdc012
commit
7327145f63
2 changed files with 31 additions and 26 deletions
|
@ -60,7 +60,11 @@ typedef struct BdrvTrackedRequest {
|
|||
int64_t offset;
|
||||
unsigned int bytes;
|
||||
bool is_write;
|
||||
|
||||
bool serialising;
|
||||
int64_t overlap_offset;
|
||||
unsigned int overlap_bytes;
|
||||
|
||||
QLIST_ENTRY(BdrvTrackedRequest) list;
|
||||
Coroutine *co; /* owner, used for deadlock detection */
|
||||
CoQueue wait_queue; /* coroutines blocked on this request */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue