Fix missing tracking reordering of row deletes.
authorRYAN D. MOATS <rmoats@us.ibm.com>
Mon, 28 Mar 2016 13:43:11 +0000 (08:43 -0500)
committerBen Pfaff <blp@ovn.org>
Wed, 30 Mar 2016 22:47:13 +0000 (15:47 -0700)
Deletes need to be reordered as well as inserts and modifies,
otherwise, following tracked changes will see out of order
seqnos.

CC: Shad Ansari <shad.ansari@hpe.com>
Signed-off-by: RYAN D. MOATS <rmoats@us.ibm.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
lib/ovsdb-idl.c

index b059660..260f068 100644 (file)
@@ -1589,9 +1589,10 @@ ovsdb_idl_row_destroy(struct ovsdb_idl_row *row)
                 = row->table->change_seqno[OVSDB_IDL_CHANGE_DELETE]
                 = row->table->idl->change_seqno + 1;
         }
-        if (ovs_list_is_empty(&row->track_node)) {
-            ovs_list_push_back(&row->table->track_list, &row->track_node);
+        if (!ovs_list_is_empty(&row->track_node)) {
+            ovs_list_remove(&row->track_node);
         }
+        ovs_list_push_back(&row->table->track_list, &row->track_node);
     }
 }