[ovs-dev] [PATCH v4] netlink-socket: Exit NL transaction loop when EINVAL is returned

Nithin Raju nithin at vmware.com
Wed Apr 15 21:22:29 UTC 2015


> On Apr 15, 2015, at 1:49 PM, Eitan Eliahu <eliahue at vmware.com> wrote:
> 
> If we remove the increment of the transaction than the whole sequence of transaction will be lost.

This is not true. We increment ‘*done’ after each successful transaction:
48         /* Count the number of successful transactions. */ 
49         (*done)++;                                         

> This should be done only after we change the driver to never fail in case the transaction fail. The current driver fails also when there are transaction level erros and when there are some other "temporary" errors. I would prefer to move to the next transaction in that case rather than dump the whole sequence. 

Yes, the driver needs to be updated to return STATUS_SUCCESS in most cases, unless there are issues with the genetlink header itself. If there’s such an error value returned by the kernel, instead of checking 'error = EINVAL’, we should check for GetLastError(). Otherwise, nl_sock_transact_multiple__() should behave as though no error occurred.

-- Nithin


More information about the dev mailing list