Commit d25a7dab authored by Zhang Chen's avatar Zhang Chen Committed by Jason Wang
Browse files

colo-compare: Fix old packet check bug.



If colo-compare find one old packet,we can notify colo-frame
do checkpoint, no need continue find more old packet here.

Signed-off-by: default avatarZhang Chen <zhangchen.fnst@cn.fujitsu.com>
Signed-off-by: default avatarJason Wang <jasowang@redhat.com>
parent 32c7e0ab
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -372,10 +372,9 @@ static int colo_old_packet_check_one(Packet *pkt, int64_t *check_time)
    }
}

static void colo_old_packet_check_one_conn(void *opaque,
static int colo_old_packet_check_one_conn(Connection *conn,
                                          void *user_data)
{
    Connection *conn = opaque;
    GList *result = NULL;
    int64_t check_time = REGULAR_PACKET_CHECK_MS;

@@ -386,7 +385,10 @@ static void colo_old_packet_check_one_conn(void *opaque,
    if (result) {
        /* do checkpoint will flush old packet */
        /* TODO: colo_notify_checkpoint();*/
        return 0;
    }

    return 1;
}

/*
@@ -398,7 +400,12 @@ static void colo_old_packet_check(void *opaque)
{
    CompareState *s = opaque;

    g_queue_foreach(&s->conn_list, colo_old_packet_check_one_conn, NULL);
    /*
     * If we find one old packet, stop finding job and notify
     * COLO frame do checkpoint.
     */
    g_queue_find_custom(&s->conn_list, NULL,
                        (GCompareFunc)colo_old_packet_check_one_conn);
}

/*