I'm looking for some guidance on when it is appropriate to increase the SPA and ZFS version numbers.
Currently for ZFS Crypto I've only increased the SPA version number and I'm using spa_version() in a few places - probably a few more are needed though. What are the guidelines for when the SPA and ZFS version numbers should be increased ? Are there cases when a single feature might need to version both (could ZFS crypto be such a feature) ? Also is there anything special about how the ZFS_PROP_VERSION property of a dataset is written out ? This is related to my previous question about the ARC flush on zfs umount. I've discovered that while a pool is imported I can mount and umount and even scrub and crypto datasets work just fine. However after I export and reimport I have trouble reading the ZFS_PROP_VERSION for encrypted datasets - but no problem with other properties it seems. The result of this is that 'zpool status' shows an error 'tank/home/darrenm:<0x0>' (where darrenm has encryption=aes-256-cbc). Using DTrace I discovered that dbuf_read() to get ZFS_PROP_VERSION is failing with EIO. -- Darren J Moffat