Unfortunately, our software causes a pretty significant service disruption when more than 1 zpool is configured and both zpools have datasets/zvols being shared out respectively. When you go to export a zpool, it will prompt if you want to delete the shares configurations. If you click on yes, the shares are deleted, the zpool is exported and the associated sharing service is stopped. This is a problem because the other zpool is still sharing data via the sharing protocol.
This caused a complete production outage on one of our customers. Here is the way to reproduce.
1. create a zpool named test01
2. create a zpool named test02
3. create a dataset named nfs-test01 under zpool named "test01"
4. create a dataset named nfs-test02 under zpool named "test02"
5. share out "nfs-test01" dataset using NFS
6. share out "nfs-test02" dataset using NFS
7. detach the zpool named "test01"
8. choose option to "Also delete the share's configuration:"
8. NFS service is stopped.
As far as the code goes, this will happen to NFS/SMB/AFP and iSCSI. If the user chooses to delete the share configurations and there is another zpool that is using the sharing service, then we should simply reload the associated service. Not stop or even restart. Just update the config files and then reload.