brcompatd: Make bridge ioctls synchronous again.
authorBen Pfaff <blp@nicira.com>
Wed, 3 Mar 2010 22:27:53 +0000 (14:27 -0800)
committerBen Pfaff <blp@nicira.com>
Wed, 3 Mar 2010 22:27:53 +0000 (14:27 -0800)
commit1e86ae6f51bcc91d2fa36e4154bc6e540251eaf8
tree843c71390ccb1025593643f74ad69c8dd044a183
parentaf96ccd24690553a0f8e2dbe9ee72530f18629c6
brcompatd: Make bridge ioctls synchronous again.

Before OVSDB was adopted in the vswitch, bridge ioctls were synchronous.
That is, an operation that, say, creates a new bridge was guaranteed to
have completed before brcompatd returned a success result to the kernel.

When OVSDB was adopted, however, we failed to maintain this property.
Instead, bridge creation (etc.) only happened some time after the return
value was passed back to the kernel.  This causes a race condition against
software that creates or deletes bridges or ports and expects that the
operation is completed synchronously.

This commit restores the synchronous behavior.

Bug #2443.
lib/ovsdb-idl.c
lib/ovsdb-idl.h
vswitchd/ovs-brcompatd.c