2008/11/13 Cyril ROUHASSIA <cyril.rouhassia at sgcib.com>: > > According > > 2008/11/12 Matthew Ahrens <Matthew.Ahrens at sun.com>: > > > > Yes, understood, the old A and the new A just have the same object > number N: first alloc a new block, write new A, then modify objset's > slot N to let it point the new A, done > > > But modification of slot N cannot be done straighforward , it has also to > comply COW rules, I mean from my understanding , a new metadnode array is > created for that objectset identical to the former one except for slot N > (where object that had been modified lie ) . And this process goes up to the > uberblock , Am I right?? >
Yes, you need to copy the block first which holds slot N, modify it and any necessary upper blocks in the object number index tree rooted at blkptr of objset dnode, then keep going up until you get the uberblock. -- args are passed by ref, but bindings are local, variables are in fact just a symbol referencing an object