In the world of "yeah, don't do that", I was renaming a bunch of zfs mount points on my nfs server today. 'zfs rename mountpoint mountpoint.new' These filesystems were NFS shared to host test machines for network style nfs booting. After the zfs rename, the old entries still exist as indicated by the NFS server whining about them and their existence in /etc/zfs/exports. This in itself may not be a bug, as the computer did what I told it to do. However, the old sharenfs settings for the old mountpoint are now immutable. Since the old mountpoints don't exist, the error checking to see if the mountpoints exist refuses to purge the nfs settings. As a workaround, renaming the filesystems back to their old name allows me to purge the old nfs settings. I had thought just creating any old filesystem with the old name would allow me to purge these settings, however it appears that the settings were set with "legacy" options of some kind as I receive the error: cannot unshare 'zroot/tftpboot/netboot_sysdev06': legacy share
Oh, trivial work around. Create and then delete the old ZFS name. This will cleanly purge the NFS settings.