Chen Zheng wrote: > Hi matt, > > I have some problems about understanding zfs COW implemention. Suppose > b and c are both children dir of a, if c changes, there will be new > versions of both a and c, namely c' and a'. > > a a' > b c c' > Actually, there will not be a new version of A unless the name of C changes (or it is removed from A). Adding or removing entries from C does not change A. > Because '..' in b points to a before this change, shall we modify b > to let '..' point to a'? If we did write out a new version of A (for example, when adding a new file "A/D"), then B's "pointer" to A will still be valid, because it references A by object number, not by block pointer (in zp_parent, as Eddie mentioned).
--matt