git://git.onelab.eu
/
sliver-openvswitch.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ovsdb-idl: Update IDL data when "set" functions are called.
[sliver-openvswitch.git]
/
lib
/
ovsdb-idl.c
diff --git
a/lib/ovsdb-idl.c
b/lib/ovsdb-idl.c
index
32eddb1
..
22e20db
100644
(file)
--- a/
lib/ovsdb-idl.c
+++ b/
lib/ovsdb-idl.c
@@
-212,6
+212,7
@@
ovsdb_idl_run(struct ovsdb_idl *idl)
{
int i;
{
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;
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) {
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);
ovsdb_idl_row_clear_new(row);
free(row->prereqs);