X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fovsdb-idl.c;h=22e20db02ccc0151ef14456215d6659979b01f8c;hb=1264cb08bfcc5cd9372decb53d3e3a7d07cc3a2b;hp=32eddb19180a31fb80fb8ecfdba60da7bf62ccca;hpb=475281c01bd655c49f086d62d0cb4055a8f8d74b;p=openvswitch diff --git a/lib/ovsdb-idl.c b/lib/ovsdb-idl.c index 32eddb19..22e20db0 100644 --- a/lib/ovsdb-idl.c +++ b/lib/ovsdb-idl.c @@ -212,6 +212,7 @@ ovsdb_idl_run(struct ovsdb_idl *idl) { int i; + assert(!idl->txn); jsonrpc_session_run(idl->session); for (i = 0; jsonrpc_session_is_connected(idl->session) && i < 50; i++) { struct jsonrpc_msg *msg, *reply; @@ -889,6 +890,11 @@ ovsdb_idl_txn_disassemble(struct ovsdb_idl_txn *txn) HMAP_FOR_EACH_SAFE (row, next, struct ovsdb_idl_row, txn_node, &txn->txn_rows) { + if (row->old && row->written) { + (row->table->class->unparse)(row); + ovsdb_idl_row_clear_arcs(row, false); + (row->table->class->parse)(row); + } ovsdb_idl_row_clear_new(row); free(row->prereqs);