diff options
author | Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> | 2021-05-06 12:06:14 +0300 |
---|---|---|
committer | Max Reitz <mreitz@redhat.com> | 2021-05-14 16:14:10 +0200 |
commit | 94783301b8cb3f2b4fd871badd923fb3b9d2e7bf (patch) | |
tree | 04549f1d015e196cbefeb104ede1daf1c8ca360a /include/block | |
parent | ac4e14f5dc93d6b4bc5d4849bb61810023330380 (diff) | |
download | qemu-94783301b8cb3f2b4fd871badd923fb3b9d2e7bf.zip qemu-94783301b8cb3f2b4fd871badd923fb3b9d2e7bf.tar.gz qemu-94783301b8cb3f2b4fd871badd923fb3b9d2e7bf.tar.bz2 |
block/write-threshold: don't use write notifiers
write-notifiers are used only for write-threshold. New code for such
purpose should create filters.
Let's better special-case write-threshold and drop write notifiers at
all. (Actually, write-threshold is special-cased anyway, as the only
user of write-notifiers)
So, create a new direct interface for bdrv_co_write_req_prepare() and
drop all write-notifier related logic from write-threshold.c.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210506090621.11848-2-vsementsov@virtuozzo.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
[mreitz: Adjusted comment as per Eric's suggestion]
Signed-off-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'include/block')
-rw-r--r-- | include/block/block_int.h | 1 | ||||
-rw-r--r-- | include/block/write-threshold.h | 9 |
2 files changed, 9 insertions, 1 deletions
diff --git a/include/block/block_int.h b/include/block/block_int.h index 731ffed..aff948f 100644 --- a/include/block/block_int.h +++ b/include/block/block_int.h @@ -959,7 +959,6 @@ struct BlockDriverState { /* threshold limit for writes, in bytes. "High water mark". */ 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 diff --git a/include/block/write-threshold.h b/include/block/write-threshold.h index c646f26..848a5dd 100644 --- a/include/block/write-threshold.h +++ b/include/block/write-threshold.h @@ -59,4 +59,13 @@ bool bdrv_write_threshold_is_set(const BlockDriverState *bs); uint64_t bdrv_write_threshold_exceeded(const BlockDriverState *bs, const BdrvTrackedRequest *req); +/* + * bdrv_write_threshold_check_write + * + * Check whether the specified request exceeds the write threshold. + * If so, send a corresponding event and disable write threshold checking. + */ +void bdrv_write_threshold_check_write(BlockDriverState *bs, int64_t offset, + int64_t bytes); + #endif |