lib/ovsdb-idl.c
/* Recursively add rows to tracked change lists for current row
 * and the rows that reference this row. */
Recursively add rows to tracked change lists for current row
and the rows that reference this row.
Recursively add rows to tracked change lists for current row and the rows that reference this row .
static void
add_tracked_change_for_references(struct ovsdb_idl_row *row)
{
    if (ovs_list_is_empty(&row->track_node) &&
            ovsdb_idl_track_is_set(row->table)) {
        ovs_list_push_back(&row->table->track_list,
                           &row->track_node);
        row->change_seqno[OVSDB_IDL_CHANGE_MODIFY]
            = row->table->change_seqno[OVSDB_IDL_CHANGE_MODIFY]
            = row->table->db->change_seqno + 1;
        const struct ovsdb_idl_arc *arc;
        LIST_FOR_EACH (arc, dst_node, &row->dst_arcs) {
            add_tracked_change_for_references(arc->src);
        }
    }
}
static void add_tracked_change_for_references ( struct ovsdb_idl_row * row ) { if ( ovs_list_is_empty ( & row -> track_node ) && ovsdb_idl_track_is_set ( row -> table ) ) { ovs_list_push_back ( & row -> table -> track_list , & row -> track_node ) ; row -> change_seqno [ OVSDB_IDL_CHANGE_MODIFY ] = row -> table -> change_seqno [ OVSDB_IDL_CHANGE_MODIFY ] = row -> table -> db -> change_seqno + 1 ; const struct ovsdb_idl_arc * arc ; LIST_FOR_EACH ( arc , dst_node , & row -> dst_arcs ) { add_tracked_change_for_references ( arc -> src ) ; } } }
Recursively add rows to tracked change lists for current row
 and the rows that reference this row.
Recursively add rows to tracked change lists for current row and the rows that reference this row .