For these two, it'll be rare that extmap_root is modified.  How is the caller supposed to work out whether you modified it?  They'll need to know because they'll have to somehow persist the change (probably just mark the onode dirty or w/e).