ctdb-vacuum: Store value of VacuumInterval in ctdb_vacuum_handle
authorMartin Schwenke <martin@meltin.net>
Fri, 27 Mar 2020 03:38:09 +0000 (14:38 +1100)
committerAmitay Isaacs <amitay@samba.org>
Tue, 7 Apr 2020 01:26:41 +0000 (01:26 +0000)
No behaviour change.  This is final staging to make the next change
completely obvious.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
ctdb/server/ctdb_vacuum.c

index b159b7d6a34ca0e6bbd22172f56f3d1ae9577eb4..a6ffc13c75a08b76439ad9189b9e9301e347736a 100644 (file)
@@ -62,6 +62,7 @@ struct ctdb_vacuum_child_context {
 struct ctdb_vacuum_handle {
        struct ctdb_db_context *ctdb_db;
        uint32_t fast_path_count;
+       uint32_t vacuum_interval;
 };
 
 
@@ -1331,10 +1332,12 @@ static int vacuum_child_destructor(struct ctdb_vacuum_child_context *child_ctx)
        ctdb->vacuumer = NULL;
 
        if (child_ctx->scheduled) {
+               vacuum_handle->vacuum_interval = get_vacuum_interval(ctdb_db);
+
                tevent_add_timer(
                        ctdb->ev,
                        vacuum_handle,
-                       timeval_current_ofs(get_vacuum_interval(ctdb_db), 0),
+                       timeval_current_ofs(vacuum_handle->vacuum_interval, 0),
                        ctdb_vacuum_event,
                        vacuum_handle);
        }
@@ -1516,9 +1519,12 @@ static void ctdb_vacuum_event(struct tevent_context *ev,
        struct ctdb_context *ctdb = ctdb_db->ctdb;
        struct ctdb_vacuum_child_context *child_ctx = NULL;
        uint32_t fast_path_max = ctdb->tunable.vacuum_fast_path_count;
+       uint32_t vacuum_interval = get_vacuum_interval(ctdb_db);
        bool full_vacuum_run = false;
        int ret;
 
+       vacuum_handle->vacuum_interval = vacuum_interval;
+
        if (vacuum_handle->fast_path_count >= fast_path_max) {
                if (fast_path_max > 0) {
                        full_vacuum_run = true;
@@ -1551,7 +1557,7 @@ static void ctdb_vacuum_event(struct tevent_context *ev,
                tevent_add_timer(ctdb->ev,
                                 vacuum_handle,
                                 timeval_current_ofs(
-                                        get_vacuum_interval(ctdb_db), 0),
+                                        vacuum_handle->vacuum_interval, 0),
                                 ctdb_vacuum_event,
                                 vacuum_handle);
        }
@@ -1678,12 +1684,13 @@ int ctdb_vacuum_init(struct ctdb_db_context *ctdb_db)
 
        vacuum_handle->ctdb_db = ctdb_db;
        vacuum_handle->fast_path_count = 0;
+       vacuum_handle->vacuum_interval = get_vacuum_interval(ctdb_db);
 
        ctdb_db->vacuum_handle = vacuum_handle;
 
        tevent_add_timer(ctdb_db->ctdb->ev,
                         vacuum_handle,
-                        timeval_current_ofs(get_vacuum_interval(ctdb_db), 0),
+                        timeval_current_ofs(vacuum_handle->vacuum_interval, 0),
                         ctdb_vacuum_event,
                         vacuum_handle);