[PATCH qemu-server 2/2] qmeventd: add block write threshold event handling
Tiago Sousa
joao.sousa at eurotux.com
Sat Aug 2 18:42:40 CEST 2025
Signed-off-by: Tiago Sousa <joao.sousa at eurotux.com>
---
src/qmeventd/qmeventd.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/src/qmeventd/qmeventd.c b/src/qmeventd/qmeventd.c
index 1d9eb74a..616b6521 100644
--- a/src/qmeventd/qmeventd.c
+++ b/src/qmeventd/qmeventd.c
@@ -209,6 +209,25 @@ void handle_qmp_event(struct Client *client, struct json_object *obj) {
// check if a backup is running and kill QEMU process if not
terminate_check(client);
+ } else if (!strcmp(json_object_get_string(event), "BLOCK_WRITE_THRESHOLD")) {
+ struct json_object *data;
+ struct json_object *nodename;
+ if (json_object_object_get_ex(obj, "data", &data) &&
+ json_object_object_get_ex(data, "node-name", &nodename)) {
+
+ // needs concurrency control
+ char extend_queue_path[] = "/etc/pve/extend_queue";
+ FILE *p_extend_queue = fopen(extend_queue_path, "a");
+ if (p_extend_queue == NULL) {
+ VERBOSE_PRINT(
+ "%s: Couldn't open extend queue file %s", client->qemu.vmid, extend_queue_path
+ );
+ } else {
+ const char *nodename_string = json_object_get_string(nodename);
+ fprintf(p_extend_queue, "%s\n", nodename_string);
+ }
+ fclose(p_extend_queue);
+ }
}
}
--
2.39.5
More information about the pve-devel
mailing list