The option sharesmb should not be inherited by childs.
Samba is perfectly able to show child file systems...
Use dataset name in comment, not the smb share name.
Use REGISTRY SHARES instead of USER SHARES
+ These are a lot more configurable (more possibility to customize the share).
+ Remove the 'acl' option and replace it with 'writeable' instead.
+ On some machines, there is a "global" share. This isn't really a share,
  but the possibility to modify global options. So first get a line of
  _real_ shares using 'net conf listshares' and _then_ cyckle through
  them retrieving info with 'net conf showshare <share>'.
+ Add an example on how to modify a share after ZFS share and what man
  pages to use for more info.
Speedups (less share retreivals) and make sure the 'net' command is executable.
* Since smb_shares is global, we only retreive shares if it's NULL
  in smb_retrieve_shares(). It should limit the number of times we
  fork() and read shares (which takes time).
* If the net command don't exist (is executable), don't even register
  the smb fstype in libshare_smb_init().
* access() fix - check if NET_CMD_PATH is _executable_ not just 'exists'.