The RSRV code looks straightforward. I do have a couple of comments and questions.
I don't see that asChangeClient() is being used anywhere. The only mention I find is the cagateway, where it is ifdef'd out with a macro SUPPORT_OWNER_CHANGE. At first glance the implementation looks similar to asAddClient() so it may be OK.
Based on my experience with bug lp:1091401 testing need to include potential races with re-loading the ACF file with asInitAsyn().
Also, I haven't look in depth, but I notice that when is called asAddClient() in claim_ciu_action() no locks are held. Your change would call asChangeClient() with chanListLock held. Calls to asComputePvt() invoke callbacks. Do you have any thoughts on the potential for deadlocks?
The RSRV code looks straightforward. I do have a couple of comments and questions.
I don't see that asChangeClient() is being used anywhere. The only mention I find is the cagateway, where it is ifdef'd out with a macro SUPPORT_ OWNER_CHANGE. At first glance the implementation looks similar to asAddClient() so it may be OK.
Based on my experience with bug lp:1091401 testing need to include potential races with re-loading the ACF file with asInitAsyn().
Also, I haven't look in depth, but I notice that when is called asAddClient() in claim_ciu_action() no locks are held. Your change would call asChangeClient() with chanListLock held. Calls to asComputePvt() invoke callbacks. Do you have any thoughts on the potential for deadlocks?