> I think that at the least the name here is misleading. The > OVSDB_IDL_MONITOR flag is set if the IDL will monitor a particular > column. Thus, it is set for read-only, write-only, and (if we really > did this) read/write columns.
oops, yes this was just a bug. I meant to use ==. I'll change it. Ethan > It might be nice to add something like "internal error" or "bug" > somewhere in there, to make it clear that this isn't related to anything > the user did. > >> + ovsdb_datum_destroy(datum, &column->type); >> + return; >> + } >> + >> /* If this is a write-only column and the datum being written is the >> same >> * as the one already there, just skip the update entirely. This is >> worth >> * optimizing because we have a lot of columns that get periodically >> @@ -1849,9 +1867,8 @@ ovsdb_idl_txn_write(const struct ovsdb_idl_row *row_, >> * transaction only does writes of existing values, without making any >> real >> * changes, we will drop the whole transaction later in >> * ovsdb_idl_txn_commit().) */ >> - if (row->table->modes[column_idx] == OVSDB_IDL_MONITOR >> - && ovsdb_datum_equals(ovsdb_idl_read(row, column), >> - datum, &column->type)) { > > (See, there's the correct test.) > >> + if (write_only && ovsdb_datum_equals(ovsdb_idl_read(row, column), >> + datum, &column->type)) { >> ovsdb_datum_destroy(datum, &column->type); >> return; >> } _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev