> 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
[email protected]
http://openvswitch.org/mailman/listinfo/dev