Don't specifically open /etc/mtab - it is done in libzfs_init()
a few lines further down.
Use setmntent() OR fopen().
No point in rewind() mtab in zfs_unshare_proto(). We're not really
reading the file, but instead uses libzfs_mnttab_find() which does
any nessesary rewind() for us.
* 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'.
Merge branch 'fixes.smbfs_registry-shares' into iscsi+crypto+mine
Merge branch 'fixes.mtab_reads' into iscsi+crypto+mine
Try to improve performance
  + We check for iSCSI availability in the init function only
    Limits the number of times we do this - it takes time...
  + Use stat() instead of opendir()/closedir().
  + Since iscsi_targets is global, we only retreive targets if it's NULL
    in iscsi_retrieve_targets(). It should limit the number of times we
    fork() and read targets AND sessions.