mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
block: Mark public read/write functions GRAPH_RDLOCK
This adds GRAPH_RDLOCK annotations to declare that callers of bdrv_co_pread*/pwrite*() need to hold a reader lock for the graph. For some places, we know that they will hold the lock, but we don't have the GRAPH_RDLOCK annotations yet. In this case, add assume_graph_lock() with a FIXME comment. These places will be removed once everything is properly annotated. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Message-Id: <20230203152202.49054-12-kwolf@redhat.com> Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
7b1fb72e2c
commit
b9b10c35e5
31 changed files with 233 additions and 238 deletions
18
block/qed.h
18
block/qed.h
|
@ -200,7 +200,7 @@ void qed_commit_l2_cache_entry(L2TableCache *l2_cache, CachedL2Table *l2_table);
|
|||
/**
|
||||
* Table I/O functions
|
||||
*/
|
||||
int coroutine_fn qed_read_l1_table_sync(BDRVQEDState *s);
|
||||
int coroutine_fn GRAPH_RDLOCK qed_read_l1_table_sync(BDRVQEDState *s);
|
||||
|
||||
int coroutine_fn GRAPH_RDLOCK
|
||||
qed_write_l1_table(BDRVQEDState *s, unsigned int index, unsigned int n);
|
||||
|
@ -208,10 +208,11 @@ qed_write_l1_table(BDRVQEDState *s, unsigned int index, unsigned int n);
|
|||
int coroutine_fn GRAPH_RDLOCK
|
||||
qed_write_l1_table_sync(BDRVQEDState *s, unsigned int index, unsigned int n);
|
||||
|
||||
int coroutine_fn qed_read_l2_table_sync(BDRVQEDState *s, QEDRequest *request,
|
||||
uint64_t offset);
|
||||
int coroutine_fn qed_read_l2_table(BDRVQEDState *s, QEDRequest *request,
|
||||
uint64_t offset);
|
||||
int coroutine_fn GRAPH_RDLOCK
|
||||
qed_read_l2_table_sync(BDRVQEDState *s, QEDRequest *request, uint64_t offset);
|
||||
|
||||
int coroutine_fn GRAPH_RDLOCK
|
||||
qed_read_l2_table(BDRVQEDState *s, QEDRequest *request, uint64_t offset);
|
||||
|
||||
int coroutine_fn GRAPH_RDLOCK
|
||||
qed_write_l2_table(BDRVQEDState *s, QEDRequest *request, unsigned int index,
|
||||
|
@ -224,9 +225,9 @@ qed_write_l2_table_sync(BDRVQEDState *s, QEDRequest *request,
|
|||
/**
|
||||
* Cluster functions
|
||||
*/
|
||||
int coroutine_fn qed_find_cluster(BDRVQEDState *s, QEDRequest *request,
|
||||
uint64_t pos, size_t *len,
|
||||
uint64_t *img_offset);
|
||||
int coroutine_fn GRAPH_RDLOCK
|
||||
qed_find_cluster(BDRVQEDState *s, QEDRequest *request, uint64_t pos,
|
||||
size_t *len, uint64_t *img_offset);
|
||||
|
||||
/**
|
||||
* Consistency check
|
||||
|
@ -234,7 +235,6 @@ int coroutine_fn qed_find_cluster(BDRVQEDState *s, QEDRequest *request,
|
|||
int coroutine_fn GRAPH_RDLOCK
|
||||
qed_check(BDRVQEDState *s, BdrvCheckResult *result, bool fix);
|
||||
|
||||
|
||||
QEDTable *qed_alloc_table(BDRVQEDState *s);
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue