On 02/03/2012 10:42 AM, Ansis Atteka wrote:

On Thu, Feb 2, 2012 at 10:10 PM, Laine Stump <laine@laine.org> wrote:

There are a few other places where it may be appropriate to do the bridge removal during error paths; this same search may show you some of them, and some others may show up when you search for where virNetDevTapCreateInBridgePort.

Wouldn't it be simpler to do port removal just inside the networkReleaseActualDevice() function if this is interface that was attached to an OVS bridge? Would this make any problems to the overall design? The code seems to work...

No. networkAllocateActualDevice and networkReleaseActualDevice are only intended to acquire network-specific configuration/resourced for the guest from a <network> object, and release it later; they shouldn't be used as a clearing house for general guest interface setup/teardown.

Looking through all this code I've been thinking it might be nice to create such "clearing house" setup/teardown functions, but what I've seen so far is that there are places where only some of the full list of functions are called (don't know if that means missing functionality / bugs, or genuinely different situations that require a different set of actions), and am too busy now with other projects to investigate further.

In the meantime, if you can try to make your additions in the (at least) two places as similar as possible, that will make it easier for us to later go in and create functions that do complete interface setup/teardown.