Machinery for supporting multiple RO/RW clones of a dataset in one experiment.
Mostly ptopgen/libvtop changes to get things through assign. Added a new virt_blockstore_attribute, 'prereserve' that can be applied to a RW clone to pre-allocate the full amount of space allocated to the volume being cloned. This is instead of the default "sparse" clone which could run out of space at an inopportune time if the containing pool runs out of space. But it doesn't work yet. Everything is there in the front end to do the necessary capacity checks and allocations of space, but then I discovered that ZFS doesn't readily support a non-sparse clone! You can do this, I think, by tweaking the "refreserved" attribute of the volume after it is created but that would have to be done behind the back of FreeNAS and I would have to do some more testing before I am willing to go here. So for now, all clones are sparse and no one is charged for their usage.
Showing with 130 additions and 7 deletions