Print this page
blah
XXX - fix get_all_datasets call
XXX - fix get_all_datasets call
        
*** 6852,6877 ****
                   * Initilialize libshare SA_INIT_SHARE_API_SELECTIVE here
                   * to avoid unneccesary load/unload of the libshare API
                   * per shared dataset downstream.
                   */
                  if (op == OP_SHARE) {
!                         zfs_handle_t **dslist = NULL;
!                         size_t count = 0;
!                         get_all_datasets(&dslist, &count, B_FALSE);
  
!                         if (count > 0) {
                                  sa_init_selective_arg_t sharearg;
!                                 sharearg.zhandle_arr = dslist;
!                                 sharearg.zhandle_len = count;
!                                 if ((ret = zfs_init_libshare_arg(
!                                     zfs_get_handle(dslist[0]),
!                                     SA_INIT_SHARE_API_SELECTIVE, &sharearg))
!                                     != SA_OK) {
                                          (void) fprintf(stderr, gettext(
!                                             "Could not initialize libshare,"
                                              "%d"), ret);
!                                         return (1);
                                  }
                          }
                  }
  
                  /*
--- 6852,6875 ----
                   * Initilialize libshare SA_INIT_SHARE_API_SELECTIVE here
                   * to avoid unneccesary load/unload of the libshare API
                   * per shared dataset downstream.
                   */
                  if (op == OP_SHARE) {
!                         get_all_cb_t dslist = { 0 };
!                         get_all_datasets(&dslist, B_FALSE);
  
!                         if (dslist.cb_used != 0) {
                                  sa_init_selective_arg_t sharearg;
!                                 sharearg.zhandle_arr = dslist.cb_handles;
!                                 sharearg.zhandle_len = dslist.cb_used;
!                                 if ((ret = zfs_init_libshare_arg(g_zfs,
!                                     SA_INIT_SHARE_API_SELECTIVE, &sharearg)) !=
!                                         SA_OK) {
                                          (void) fprintf(stderr, gettext(
!                                             "Could not initialize libshare, "
                                              "%d"), ret);
!                                         return (ret);
                                  }
                          }
                  }
  
                  /*