On Wed, Apr 19, 2017 at 4:32 AM, Jamal Hadi Salim <j...@mojatatu.com> wrote: > This solves one issue, but I am afraid the issue Cong mentioned is a > possibility still. > Lets say user did a replace and tried to also replace the cookie > in that transaction. The init() succeeds but the cookie allocation > fails. To be correct we'll have to undo the replace i.e something > like uninit() which will restore back the old values. > This is very complex and unnecessary.
It is not complex once we move to RCU completely, replacement is merely a pointer assignment, rollback is same. It is necessary too according to the rules of RCU, as I said before, the current code is broken, we can't modify an existing action with RCU, we have to make a copy. I do have plan to make actions truly RCU, but I have to redesign the action API's first.