Lines Matching refs:sv

191 smb_kshare_exec(smb_server_t *sv, smb_shr_execinfo_t *execinfo)
195 (void) smb_kdoor_upcall(sv, SMB_DR_SHR_EXEC,
260 smb_export_start(smb_server_t *sv)
262 mutex_enter(&sv->sv_export.e_mutex);
263 if (sv->sv_export.e_ready) {
264 mutex_exit(&sv->sv_export.e_mutex);
268 sv->sv_export.e_ready = B_TRUE;
269 mutex_exit(&sv->sv_export.e_mutex);
271 smb_avl_create(&sv->sv_export.e_share_avl, sizeof (smb_kshare_t),
274 (void) smb_kshare_export_trans(sv, "IPC$", "IPC$", "Remote IPC");
275 (void) smb_kshare_export_trans(sv, "c$", SMB_CVOL, "Default Share");
276 (void) smb_kshare_export_trans(sv, "vss$", SMB_VSS, "VSS");
285 smb_export_stop(smb_server_t *sv)
287 mutex_enter(&sv->sv_export.e_mutex);
288 if (!sv->sv_export.e_ready) {
289 mutex_exit(&sv->sv_export.e_mutex);
292 sv->sv_export.e_ready = B_FALSE;
293 mutex_exit(&sv->sv_export.e_mutex);
295 smb_avl_destroy(&sv->sv_export.e_share_avl);
296 smb_vfs_rele_all(&sv->sv_export);
313 smb_kshare_init(smb_server_t *sv)
316 smb_llist_constructor(&sv->sv_export.e_vfs_list, sizeof (smb_vfs_t),
319 smb_slist_constructor(&sv->sv_export.e_unexport_list,
324 smb_kshare_start(smb_server_t *sv)
326 smb_thread_init(&sv->sv_export.e_unexport_thread, "smb_kshare_unexport",
327 smb_kshare_unexport_thread, sv, smbsrv_base_pri);
329 return (smb_thread_start(&sv->sv_export.e_unexport_thread));
333 smb_kshare_stop(smb_server_t *sv)
335 smb_thread_stop(&sv->sv_export.e_unexport_thread);
336 smb_thread_destroy(&sv->sv_export.e_unexport_thread);
340 smb_kshare_fini(smb_server_t *sv)
344 while ((ux = list_head(&sv->sv_export.e_unexport_list.sl_list))
346 smb_slist_remove(&sv->sv_export.e_unexport_list, ux);
349 smb_slist_destructor(&sv->sv_export.e_unexport_list);
351 smb_vfs_rele_all(&sv->sv_export);
353 smb_llist_destructor(&sv->sv_export.e_vfs_list);
373 smb_server_t *sv = NULL;
381 if ((rc = smb_server_lookup(&sv)) != 0)
384 if (!smb_export_isready(sv)) {
401 if (sv->sv_state != SMB_SERVER_STATE_RUNNING)
423 if ((rc = smb_kshare_export(sv, shr)) != 0) {
432 smb_server_release(sv);
455 smb_server_t *sv = NULL;
463 if ((rc = smb_server_lookup(&sv)) != 0)
477 if ((rc = smb_kshare_unexport(sv, shrname)) != 0)
483 smb_slist_insert_tail(&sv->sv_export.e_unexport_list, ux);
488 smb_thread_signal(&sv->sv_export.e_unexport_thread);
493 smb_server_release(sv);
522 smb_kshare_enum(smb_server_t *sv, smb_enumshare_info_t *esi)
537 if (!smb_export_isready(sv)) {
545 share_avl = &sv->sv_export.e_share_avl;
638 smb_kshare_lookup(smb_server_t *sv, const char *shrname)
645 if (!smb_export_isready(sv))
649 shr = smb_avl_lookup(&sv->sv_export.e_share_avl, &key);
657 smb_kshare_release(smb_server_t *sv, smb_kshare_t *shr)
662 smb_avl_release(&sv->sv_export.e_share_avl, shr);
677 smb_kshare_export(smb_server_t *sv, smb_kshare_t *shr)
684 share_avl = &sv->sv_export.e_share_avl;
708 if ((rc = smb_server_sharevp(sv, shr->shr_path, &vp)) != 0) {
714 if ((rc = smb_vfs_hold(&sv->sv_export, vp->v_vfsp)) == 0) {
718 smb_vfs_rele(&sv->sv_export, vp->v_vfsp);
742 smb_kshare_unexport(smb_server_t *sv, const char *shrname)
751 share_avl = &sv->sv_export.e_share_avl;
769 if ((rc = smb_server_sharevp(sv, shr->shr_path, &vp)) != 0) {
776 smb_vfs_rele(&sv->sv_export, vp->v_vfsp);
790 smb_kshare_export_trans(smb_server_t *sv, char *name, char *path, char *cmnt)
817 return (smb_kshare_export(sv, shr));
1179 smb_server_t *sv = arg;
1183 while ((ux = list_head(&sv->sv_export.e_unexport_list.sl_list))
1185 smb_slist_remove(&sv->sv_export.e_unexport_list, ux);
1193 smb_export_isready(smb_server_t *sv)
1197 mutex_enter(&sv->sv_export.e_mutex);
1198 ready = sv->sv_export.e_ready;
1199 mutex_exit(&sv->sv_export.e_mutex);